- 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.
123 lines
2.9 KiB
TypeScript
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;
|
|
}
|
|
};
|
|
}
|