bamble_skills_controller
Version:
schemas for all microservices
72 lines (57 loc) • 1.99 kB
text/typescript
import { GeneralObject, RESPONSE_TYPE } from "../types/index";
import { SkillCategories } from "./db";
// Function to retrieve all skill categories
export const getAllSkillCategories = (): Promise<RESPONSE_TYPE> => {
return new Promise((resolve, reject) => {
const categories = Object.keys(SkillCategories);
if (categories.length > 0) {
let res: RESPONSE_TYPE = {
data: categories,
message: 'Skill categories retrieved successfully.',
status: 200,
statusCode: 'SKILL_CATEGORIES_RETRIEVED'
}
resolve(res);
} else {
let notfound: RESPONSE_TYPE = {
data: categories,
message: 'Skill categories does not exist.',
status: 404,
statusCode: 'RESOURCE_NOT_FOUND'
}
}
});
};
// Function to check if a category is valid
export const isValidCategory = (category: string): Promise<boolean> => {
return new Promise((resolve, reject) => {
if (SkillCategories.hasOwnProperty(category)) {
resolve(true);
} else {
reject(`Invalid category: ${category}`);
}
});
};
// Function to check if a skill is in a given category
export const isSkillInCategory = (skill :string[], category :any) : Promise<boolean | string> => {
return new Promise((resolve, reject) => {
if (SkillCategories.hasOwnProperty(category)) {
const skills = SkillCategories[category];
let skillLen = skill.length;
for(let i = 0; i < skillLen; i++){
if (skills.includes(skill[i] )) {
} else {
reject(`${skill[i]} is not a valid skill for ${category} `);
return;
}
if(i==skillLen-1){
resolve(true)
return;
}
}
} else {
reject(`Invalid category: ${category}`);
return;
}
});
};