Fixed device credentials on discard/cancel conflict

This commit is contained in:
mpetrov 2024-09-26 13:09:41 +03:00
parent aaff0a7f7a
commit 7f10ad33f2

View File

@ -25,7 +25,9 @@ import { DeviceCredentials, DeviceProfileInfo, DeviceTransportType } from '@shar
import { DialogComponent } from '@shared/components/dialog.component'; import { DialogComponent } from '@shared/components/dialog.component';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { DeviceProfileService } from '@core/http/device-profile.service'; import { DeviceProfileService } from '@core/http/device-profile.service';
import { forkJoin } from 'rxjs'; import { forkJoin, throwError } from 'rxjs';
import { catchError } from 'rxjs/operators';
import { HttpStatusCode } from '@angular/common/http';
export interface DeviceCredentialsDialogData { export interface DeviceCredentialsDialogData {
isReadOnly: boolean; isReadOnly: boolean;
@ -102,7 +104,16 @@ export class DeviceCredentialsDialogComponent extends
this.submitted = true; this.submitted = true;
const deviceCredentialsValue = this.deviceCredentialsFormGroup.value.credential; const deviceCredentialsValue = this.deviceCredentialsFormGroup.value.credential;
this.deviceCredentials = {...this.deviceCredentials, ...deviceCredentialsValue}; this.deviceCredentials = {...this.deviceCredentials, ...deviceCredentialsValue};
this.deviceService.saveDeviceCredentials(this.deviceCredentials).subscribe( this.deviceService.saveDeviceCredentials(this.deviceCredentials)
.pipe(
catchError((err) => {
if (err.status === HttpStatusCode.Conflict) {
return this.deviceService.getDeviceCredentials(this.deviceCredentials.deviceId.id);
}
return throwError(() => err);
})
)
.subscribe(
(deviceCredentials) => { (deviceCredentials) => {
this.dialogRef.close(deviceCredentials); this.dialogRef.close(deviceCredentials);
} }