-
Notifications
You must be signed in to change notification settings - Fork 5
[$75] Change in how we work with Skills #627
Description
Right now, each user has skills. We can add and remove skills for a user. We even have a filter for skills.
Each skill has a parent called as "skill provider".
Currently, front end assumes all skills to be having the skill provider as EMSI
.
EMSI is a third party api that we are using which we query to return skills, which are then assigned to the user.
Front end has EMSI_SKILLPROVIDER_ID
configuration, which is used when we add a new skill to a user. This basically creates the skill, for that user, and assigns EMSI as the skill provider for that skill in the database.
We are now moving to support multiple skill providers.
Each skill provider will be associated with an organization.
Change 1
Instead of the existing endpoint to get the skills, you will now use GET {{API_URL}}/search/skills?organizationId=<selected_org_id>&keyword=<search_text>
where organizationId
is the org id of the org that the user selected during page load and keyword
is the search text entered by the user. You will need to update this such that, both - the skills filter AND the skills search in the edit profile modal use it. The dropdown suggestions and selection / removal of the skill will not change - you are only updating the api (You might have to update the property names used since they may not be the same)
Change 2
The response structure of the skill suggestions will contain the skill name, skill id and skill provider id.
Now, currently, we assign the EMSI skill provider id (read from the config) for all skills that we are adding to a user. Instead, you will now update it so that the skill provider id associated with the selected skill itself will be used instead of the EMSI skill provider id. That is, when a user selects a skill to be added to a user, the skill provider id of this skill will be the one present in the suggestion list, for the selected skill (each skill will have a skill id and a skill provider id besides the name)
With this, the EMSI skill provider id configuration would no longer be needed. The front end will have no knowledge of anything EMSI
Change 3
Since we are no longer using the app's backend, but instead are now using the API to fetch the skills, you need to remove the code in the app's backend too (besides the front end) that deals with the EMSI skill endpoint proxy
Notes
- When a user adds a skill, there is a possibility that two skills are having the same name. In this case, they will have different skill providers. Thus, you would need to update the code that checks if the skill exists or not to compare both the skill id and the skill provider id
- Remove all references to EMSI from this app. The app basically will no longer have anything to do with EMSI (we are moving it to the api instead). Remove it from the backend too (this app has a front end, back end and an api - api is where we are moving the code to EMSI - so you need to remove any mention of EMSI from front end and back end only)