refactor(remote-data-service) : add patch to remote-data service, refactored scandataservice to simplify api

This commit is contained in:
2025-01-30 17:15:34 +01:00
parent 5918401f77
commit 4551d1f4d9
2 changed files with 38 additions and 6 deletions

View File

@ -54,6 +54,23 @@ export class RemoteDataService {
}
);
}
/**
* Base method for making a PATCH request to the server
* @param path path to the endpoint
* @param payload payload to send
* @param headers additional headers
* @returns response from the server
*/
protected patch<T>(path: string, payload: any, headers: HttpHeaders) {
return this.httpClient.patch<T>(
this.serverSettings.getServerAddress() + path,
payload,
{
headers,
}
);
}
}
@Injectable({
@ -189,4 +206,22 @@ export class ScanCountService extends RemoteDataService {
}
return this.get<ScanCountResponse>('scans/count', filters, headers);
}
/**
* Method for updating the user data for a scan
* @param scanId Unique identifier for the scan
* @param userData User data to update
* @returns response from the server
* @throws HttpErrorResponse if the request fails
* @throws TimeoutError if the request takes too long
*/
updateUserData(scanId: string, userData: ScanUserData) {
let headers = new HttpHeaders();
headers = headers.set('Content-Type', 'application/json; charset=utf-8');
return this.post<string>(
'scans/user_data',
{ scan_id: scanId, ...userData },
headers
);
}
}

View File

@ -7,7 +7,7 @@ import {
Signal,
inject,
} from '@angular/core';
import { ScanCountService, ScanDataService } from '../core/remote-data.service';
import { ScanDataService } from '../core/remote-data.service';
import { ScanDataResponse } from '../core/model/scan-data';
import { CommonModule } from '@angular/common';
import { MatTableModule } from '@angular/material/table';
@ -152,7 +152,7 @@ export class ScanTableComponent {
loadScanCountResource = resource({
request: () => this.reloadCriteria(),
loader: ({ request, abortSignal }): Promise<ScanCountResponse> => {
return firstValueFrom(this.scanCount.getScanCount(request.sessionId));
return firstValueFrom(this.scanData.getScanCount(request.sessionId));
},
});
@ -182,10 +182,7 @@ export class ScanTableComponent {
return data.count;
}
constructor(
private scanData: ScanDataService,
private scanCount: ScanCountService
) {
constructor(private scanData: ScanDataService) {
this.tableData = computed(() =>
this.handleScanData(this.loadScanDataResource.value() || [])
);