Files
peakskills/clients/domains/evaluation-client.ts
Julien Froidefond 26496e7473 refactor: integrate EvaluationClient and remove legacy evaluation actions
- Added EvaluationClient to clients/index.ts and created an instance for use.
- Updated client-wrapper.tsx and welcome-screen.tsx to utilize EvaluationClient for evaluation actions.
- Removed obsolete evaluation-actions.ts file to streamline codebase and reduce redundancy.
2025-08-25 08:06:23 +02:00

123 lines
2.9 KiB
TypeScript

import { BaseHttpClient } from "../base/http-client";
import { SkillLevel } from "../../lib/types";
export class EvaluationClient extends BaseHttpClient {
/**
* Met à jour le niveau d'une compétence
*/
updateSkillLevel = async (
category: string,
skillId: string,
level: SkillLevel
): Promise<void> => {
try {
await this.put("/evaluations/skills", {
action: "updateLevel",
category,
skillId,
level,
});
} catch (error) {
console.error("Failed to update skill level:", error);
throw error;
}
};
/**
* Met à jour le statut mentor d'une compétence
*/
updateSkillMentorStatus = async (
category: string,
skillId: string,
canMentor: boolean
): Promise<void> => {
try {
await this.put("/evaluations/skills", {
action: "updateMentorStatus",
category,
skillId,
canMentor,
});
} catch (error) {
console.error("Failed to update skill mentor status:", error);
throw error;
}
};
/**
* Met à jour le statut d'apprentissage d'une compétence
*/
updateSkillLearningStatus = async (
category: string,
skillId: string,
wantsToLearn: boolean
): Promise<void> => {
try {
await this.put("/evaluations/skills", {
action: "updateLearningStatus",
category,
skillId,
wantsToLearn,
});
} catch (error) {
console.error("Failed to update skill learning status:", error);
throw error;
}
};
/**
* Ajoute une compétence à l'évaluation
*/
addSkillToEvaluation = async (
category: string,
skillId: string
): Promise<void> => {
try {
await this.put("/evaluations/skills", {
action: "addSkill",
category,
skillId,
});
} catch (error) {
console.error("Failed to add skill to evaluation:", error);
throw error;
}
};
/**
* Supprime une compétence de l'évaluation
*/
removeSkillFromEvaluation = async (
category: string,
skillId: string
): Promise<void> => {
try {
await this.put("/evaluations/skills", {
action: "removeSkill",
category,
skillId,
});
} catch (error) {
console.error("Failed to remove skill from evaluation:", error);
throw error;
}
};
/**
* Initialise une évaluation vide pour un profil
*/
initializeEmptyEvaluation = async (
profile: import("../../lib/types").UserProfile
): Promise<void> => {
try {
// Simplement créer le profil via l'auth, pas besoin de créer une évaluation vide
// Le backend créera automatiquement l'évaluation lors du premier accès
const { authClient } = await import("../index");
await authClient.login(profile);
} catch (error) {
console.error("Failed to initialize evaluation:", error);
throw error;
}
};
}