/** * Copyright since 2025 Mifos Initiative * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ import { Injectable, inject } from '@angular/core'; import { HttpClient, HttpParams } from '@angular/common/http'; import { Observable } from 'rxjs'; import { environment } from 'environments/environment'; export interface OpenProjectWorkPackage { id: number; subject: string; description?: string; status: string; type: string; priority: string; assignee?: string; project: string; createdAt: string; updatedAt: string; dueDate?: string; percentageDone?: number; openProjectUrl?: string; } @Injectable({ providedIn: 'root' }) export class OpenProjectService { private http = inject(HttpClient); get isEnabled(): boolean { return environment.openProjectEnabled; } getWorkPackages(pageSize = 50, offset = 1): Observable { let params = new HttpParams().set('pageSize', pageSize).set('offset', offset); return this.http.get('/openproject/work-packages', { params }); } getWorkPackageById(id: number): Observable { return this.http.get(`/openproject/work-packages/${id}`); } triggerSync(): Observable { return this.http.post('/openproject/sync', {}); } }