Files
doneit-web/src/app/module/actions/data/repository/publication-remote-repository.service.ts
T
2026-03-18 14:37:45 +01:00

48 lines
1.8 KiB
TypeScript

import { Injectable } from '@angular/core';
import { PublicationCreateInputDto } from 'src/app/core/actions/use-case/publication-create-use-case.service';
import { PublicationListByProcessIdOutPut } from 'src/app/core/actions/use-case/publication-list-by-process-id.service';
import { PublicationUpdateInputDto } from 'src/app/core/actions/use-case/publication-update-use-case.service';
import { HttpService } from 'src/app/infra/http/http.service';
import { ApiResponse } from 'src/app/infra/http/type';
import { environment } from 'src/environments/environment';
@Injectable({
providedIn: 'root'
})
export class PublicationRemoteRepositoryService {
private baseUrl = `${environment.apiURLStage.slice(0, -1)}/PresidentialActions`; // Your base URL
constructor(
private http: HttpService
) { }
async listByProcessId(processId: number) {
return await this.http.get<ApiResponse<PublicationListByProcessIdOutPut>>(`${this.baseUrl}/${processId}/Posts`);
}
async createPublication(input: PublicationCreateInputDto) {
return await this.http.post<ApiResponse<PublicationCreateInputDto>>(`${this.baseUrl}/${input.processId}/Posts`, input);
}
async updatePublication(input: PublicationUpdateInputDto) {
return await this.http.put<ApiResponse<PublicationUpdateInputDto>>(`${this.baseUrl}/${input.processId}/Posts/${input.documentId}`, input);
}
isUpdatingPublication(publicationId: string, processId: string): boolean {
return this.http.hasPendingRequest(
'PUT',
`/PresidentialActions/${processId}/Posts/${publicationId}`
);
}
isFechingFilesPublication(publicationId: string): boolean {
console.log('isFechingFilesPublication', `/PresidentialActions/Posts/${publicationId}/Posts`);
return this.http.hasPendingRequest(
'GET',
`/PresidentialActions/Posts/${publicationId}/file`
);
}
}