refactor: revew all design of services, clients, deadcode, ...
This commit is contained in:
86
clients/domains/admin-client.ts
Normal file
86
clients/domains/admin-client.ts
Normal file
@@ -0,0 +1,86 @@
|
||||
import { BaseHttpClient } from "../base/http-client";
|
||||
|
||||
export interface Skill {
|
||||
id: string;
|
||||
name: string;
|
||||
description: string;
|
||||
icon: string;
|
||||
categoryId: string;
|
||||
category: string;
|
||||
usageCount: number;
|
||||
}
|
||||
|
||||
export interface Team {
|
||||
id: string;
|
||||
name: string;
|
||||
direction: string;
|
||||
memberCount: number;
|
||||
}
|
||||
|
||||
export interface TeamMember {
|
||||
id: string;
|
||||
firstName: string;
|
||||
lastName: string;
|
||||
fullName: string;
|
||||
joinedAt: string;
|
||||
}
|
||||
|
||||
export class AdminClient extends BaseHttpClient {
|
||||
// Skills Management
|
||||
async getSkills(): Promise<Skill[]> {
|
||||
return await this.get<Skill[]>(`/admin/skills`);
|
||||
}
|
||||
|
||||
async createSkill(
|
||||
skillData: Omit<Skill, "id" | "usageCount">
|
||||
): Promise<Skill> {
|
||||
return await this.post<Skill>(`/admin/skills`, skillData);
|
||||
}
|
||||
|
||||
async updateSkill(skillData: Skill): Promise<Skill> {
|
||||
return await this.put<Skill>(`/admin/skills`, skillData);
|
||||
}
|
||||
|
||||
async deleteSkill(skillId: string): Promise<void> {
|
||||
await this.delete(`/admin/skills?id=${skillId}`);
|
||||
}
|
||||
|
||||
// Teams Management
|
||||
async getTeams(): Promise<Team[]> {
|
||||
return await this.get<Team[]>(`/admin/teams`);
|
||||
}
|
||||
|
||||
async createTeam(teamData: Omit<Team, "id" | "memberCount">): Promise<Team> {
|
||||
return await this.post<Team>(`/admin/teams`, teamData);
|
||||
}
|
||||
|
||||
async updateTeam(teamData: Team): Promise<Team> {
|
||||
return await this.put<Team>(`/admin/teams`, teamData);
|
||||
}
|
||||
|
||||
async deleteTeam(teamId: string): Promise<void> {
|
||||
await this.delete(`/admin/teams?id=${teamId}`);
|
||||
}
|
||||
|
||||
async deleteDirection(direction: string): Promise<void> {
|
||||
await this.delete(
|
||||
`/admin/teams?direction=${encodeURIComponent(direction)}`
|
||||
);
|
||||
}
|
||||
|
||||
// Team Members
|
||||
async getTeamMembers(teamId: string): Promise<TeamMember[]> {
|
||||
return await this.get<TeamMember[]>(`/admin/teams/${teamId}/members`);
|
||||
}
|
||||
|
||||
async removeTeamMember(teamId: string, memberId: string): Promise<void> {
|
||||
await this.delete(`/admin/teams/${teamId}/members`, {
|
||||
memberId,
|
||||
});
|
||||
}
|
||||
|
||||
// User Management
|
||||
async deleteUser(userId: string): Promise<void> {
|
||||
await this.delete(`/admin/users/${userId}`);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user