Picsur/frontend/src/app/services/api/roles.service.ts

70 lines
1.6 KiB
TypeScript
Raw Normal View History

2022-03-23 16:17:39 +00:00
import { Injectable } from '@angular/core';
2022-03-24 10:45:43 +00:00
import {
RoleCreateRequest,
RoleCreateResponse,
RoleDeleteRequest,
RoleDeleteResponse,
RoleInfoRequest,
RoleInfoResponse,
RoleListResponse,
RoleUpdateRequest,
2022-09-06 14:32:16 +00:00
RoleUpdateResponse,
2022-03-24 10:45:43 +00:00
} from 'picsur-shared/dist/dto/api/roles.dto';
2022-03-23 16:17:39 +00:00
import { ERole } from 'picsur-shared/dist/entities/role.entity';
2022-03-30 10:41:40 +00:00
import { AsyncFailable, Open } from 'picsur-shared/dist/types';
2022-03-28 15:26:50 +00:00
import { RoleModel } from 'src/app/models/forms-dto/role.dto';
2022-03-23 16:17:39 +00:00
import { ApiService } from './api.service';
@Injectable({
providedIn: 'root',
})
export class RolesService {
2022-06-27 15:37:37 +00:00
constructor(private readonly api: ApiService) {}
2022-03-23 16:17:39 +00:00
public async getRoles(): AsyncFailable<ERole[]> {
2022-06-27 13:23:06 +00:00
const response = await this.api.get(RoleListResponse, '/api/roles/list');
2022-03-23 16:17:39 +00:00
2022-06-27 13:23:06 +00:00
return Open(response, 'results');
2022-03-23 16:17:39 +00:00
}
2022-03-24 10:45:43 +00:00
public async getRole(name: string): AsyncFailable<ERole> {
2022-03-30 10:41:40 +00:00
return await this.api.post(
2022-03-24 10:45:43 +00:00
RoleInfoRequest,
RoleInfoResponse,
'/api/roles/info',
2022-03-30 10:41:40 +00:00
{
name,
2022-06-05 10:20:16 +00:00
},
2022-03-24 10:45:43 +00:00
);
}
public async createRole(role: RoleModel): AsyncFailable<ERole> {
2022-03-30 10:41:40 +00:00
return await this.api.post(
2022-03-24 10:45:43 +00:00
RoleCreateRequest,
RoleCreateResponse,
'/api/roles/create',
2022-06-05 10:20:16 +00:00
role,
2022-03-24 10:45:43 +00:00
);
}
public async updateRole(role: RoleModel): AsyncFailable<ERole> {
2022-03-30 10:41:40 +00:00
return await this.api.post(
2022-03-24 10:45:43 +00:00
RoleUpdateRequest,
RoleUpdateResponse,
'/api/roles/update',
2022-06-05 10:20:16 +00:00
role,
2022-03-24 10:45:43 +00:00
);
}
public async deleteRole(name: string): AsyncFailable<ERole> {
2022-03-30 10:41:40 +00:00
return await this.api.post(
2022-03-24 10:45:43 +00:00
RoleDeleteRequest,
RoleDeleteResponse,
'/api/roles/delete',
2022-03-30 10:41:40 +00:00
{
name,
2022-06-05 10:20:16 +00:00
},
2022-03-24 10:45:43 +00:00
);
}
2022-03-23 16:17:39 +00:00
}