Files
psp_panel/src/app/domains/pos/store/me.store.ts
T

50 lines
1.2 KiB
TypeScript
Raw Normal View History

import { defaultBaseStateData, EntityState, EntityStore } from '@/core/state';
import { HttpErrorResponse } from '@angular/common/http';
2026-04-23 01:22:44 +03:30
import { inject, Injectable } from '@angular/core';
import { catchError, finalize, map } from 'rxjs';
2026-04-23 01:22:44 +03:30
import { IPosProfileResponse } from '../models';
import { PosService } from '../modules/landing/services/main.service';
2026-03-18 13:35:57 +03:30
2026-04-23 01:22:44 +03:30
interface PosProfileState extends EntityState<IPosProfileResponse> {}
2026-03-18 13:35:57 +03:30
@Injectable({
providedIn: 'root',
})
2026-04-23 01:22:44 +03:30
export class PosProfileStore extends EntityStore<IPosProfileResponse, PosProfileState> {
2026-03-18 13:35:57 +03:30
private readonly service = inject(PosService);
2026-04-23 01:22:44 +03:30
constructor() {
2026-03-18 13:35:57 +03:30
super({
...defaultBaseStateData,
2026-03-18 13:35:57 +03:30
});
}
getData() {
this.patchState({ loading: true });
2026-04-23 01:22:44 +03:30
return this.service.getProfile().pipe(
2026-04-11 14:46:52 +03:30
finalize(() => {
this.patchState({ loading: false });
}),
catchError((err: HttpErrorResponse) => {
this.setError(err);
// if (err.status === 403) debugger;
throw err;
}),
2026-04-23 01:22:44 +03:30
map((entity: IPosProfileResponse) => {
2026-04-11 14:46:52 +03:30
if (entity) {
this.setEntity(entity);
2026-04-11 14:46:52 +03:30
}
return entity;
}),
);
2026-03-18 13:35:57 +03:30
}
override reset(): void {
this.setState({
...defaultBaseStateData,
2026-03-18 13:35:57 +03:30
});
}
}