Files
ISA-Frontend/apps/domain/package-inspection/src/lib/package-inspection.service.ts
2023-01-09 15:38:08 +00:00

71 lines
2.4 KiB
TypeScript

import { Injectable } from '@angular/core';
import {
ListResponseArgsOfPackageDTO,
PackageArrivalStatusDTO,
PackageDetailResponseDTO,
PackageDTO,
QuerySettingsDTO,
QueryTokenDTO,
ResponseArgsOfPackageArrivalStatusDTO,
ResponseArgsOfPackageDetailResponseDTO,
ResponseArgsOfQuerySettingsDTO,
WareneingangService,
} from '@swagger/wws';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
@Injectable({
providedIn: 'root',
})
export class DomainPackageInspectionService {
constructor(private _wareneingang: WareneingangService) {}
getQuerySettingsResponse(): Observable<ResponseArgsOfQuerySettingsDTO> {
return this._wareneingang.WareneingangQueryPackagesSettings();
}
getQuerySettings(): Observable<QuerySettingsDTO> {
return this.getQuerySettingsResponse().pipe(map((response) => response.result));
}
queryPackagesResponse(queryToken: QueryTokenDTO): Observable<ListResponseArgsOfPackageDTO> {
return this._wareneingang.WareneingangQueryPackages(queryToken);
}
queryPackages(queryToken: QueryTokenDTO): Observable<PackageDTO[]> {
return this.queryPackagesResponse(queryToken).pipe(map((response) => response.result));
}
getPackageDetailsResponse(id: string): Observable<ResponseArgsOfPackageDetailResponseDTO> {
return this._wareneingang.WareneingangGetPackageDetails(id);
}
getPackageDetails(id: string): Observable<PackageDetailResponseDTO> {
return this.getPackageDetailsResponse(id).pipe(map((response) => response.result));
}
changePackageStatusResponse(pkg: PackageDTO, modifier: string): Observable<ResponseArgsOfPackageArrivalStatusDTO> {
return this._wareneingang.WareneingangChangePackageStatus({
packageId: pkg.id,
payload: {
id: pkg.id,
annotation: pkg.annotation,
area: pkg.area,
arrivalChecked: pkg.arrivalChecked,
arrivalStatus: pkg.arrivalStatus,
deliveryNoteNumber: pkg.deliveryNoteNumber,
deliveryTarget: pkg.deliveryTarget,
estimatedDeliveryDate: pkg.estimatedDeliveryDate,
packageNumber: pkg.packageNumber,
supplier: pkg.supplier,
trackingNumber: pkg.trackingNumber,
},
modifier,
});
}
changePackageStatus(pkg: PackageDTO, modifier: string): Observable<PackageArrivalStatusDTO> {
return this.changePackageStatusResponse(pkg, modifier).pipe(map((response) => response.result));
}
}