import { HttpClient, HttpParams } from "@angular/common/http"; import { Injectable } from "@angular/core"; import { Utils, AnyObject, ResponseType, UserRoleDTO, PermItemDTO, UserDTO } from "@cdk/public-api"; import { map } from "rxjs"; @Injectable({ providedIn: "root", }) export class ClientApiService { constructor(private http: HttpClient) {} public accountKey = "CATERING_CLIENT_ACCOUNT"; page(v: {}, q: {}) { return this.http.get("https://jsonplaceholder.typicode.com/users", v).pipe( map((r) => { return { total: 10, content: r, }; }) ); } login(v: {}) { const params = Utils.objectToHttpParams(v); return this.http.get("/api/login", { params }); } logout() { return this.http.get("/api/logout"); } getRoleList() { return this.http.get>("/api/role"); } deleteRole(roleId: string) { const params = new HttpParams().set("roleId", roleId); return this.http.delete("/api/role", { params, }); } updateRole(rule: AnyObject) { const body = Utils.objectToFormData(rule); const method = rule["roleId"] ? "post" : "put"; return this.http[method]("/api/role", body); } getRolePerms() { return this.http.get>("/api/role/item"); } getUserList() { return this.http.get>("/api/user"); } checkUid(uid: string) { const params = new HttpParams().set("uid", uid); return this.http.delete("/api/user/check", { params, }); } saveUser(user: AnyObject, edit: boolean) { const body = Utils.objectToFormData(user); const method = edit ? "post" : "put"; return this.http[method]("/api/user", body); } deleteUser(uid: string) { const params = new HttpParams().set("uid", uid); return this.http.delete("/api/user", { params, }); } }