1
1
import _ from 'lodash'
2
2
import {
3
3
fetchChallengeTypes ,
4
- fetchChallengeTags ,
5
4
fetchGroups ,
6
5
fetchTimelineTemplates ,
7
6
fetchChallengePhases ,
@@ -20,7 +19,8 @@ import {
20
19
deleteChallenge as deleteChallengeAPI ,
21
20
createChallenge as createChallengeAPI ,
22
21
createResource as createResourceAPI ,
23
- deleteResource as deleteResourceAPI
22
+ deleteResource as deleteResourceAPI ,
23
+ updateChallengeSkillsApi
24
24
} from '../services/challenges'
25
25
import { searchProfilesByUserIds } from '../services/user'
26
26
import {
@@ -52,7 +52,9 @@ import {
52
52
CHALLENGE_STATUS ,
53
53
LOAD_CHALLENGE_RESOURCES_SUCCESS ,
54
54
LOAD_CHALLENGE_RESOURCES_PENDING ,
55
- LOAD_CHALLENGE_RESOURCES_FAILURE
55
+ LOAD_CHALLENGE_RESOURCES_FAILURE ,
56
+ WORK_TYPE_ID ,
57
+ UPDATE_CHALLENGES_SKILLS_SUCCESS
56
58
} from '../config/constants'
57
59
import { loadProject } from './projects'
58
60
import { removeChallengeFromPhaseProduct , saveChallengeAsPhaseProduct } from '../services/projects'
@@ -515,17 +517,6 @@ export function loadChallengeTimelines () {
515
517
}
516
518
}
517
519
518
- export function loadChallengeTags ( ) {
519
- return async ( dispatch ) => {
520
- const challengeTags = await fetchChallengeTags ( )
521
- dispatch ( {
522
- type : LOAD_CHALLENGE_METADATA_SUCCESS ,
523
- metadataKey : 'challengeTags' ,
524
- metadataValue : challengeTags
525
- } )
526
- }
527
- }
528
-
529
520
export function loadGroups ( ) {
530
521
return async ( dispatch , getState ) => {
531
522
const groups = await fetchGroups ( {
@@ -739,3 +730,29 @@ export function replaceResourceInRole (challengeId, roleId, newMember, oldMember
739
730
}
740
731
}
741
732
}
733
+
734
+ /**
735
+ * Update Challenge skill
736
+ * @param {UUID } challengeId id of the challenge for which resource is to be replaced
737
+ * @param {Array } skills array of skill
738
+ */
739
+ export function updateChallengeSkills ( challengeId , skills ) {
740
+ return async ( dispatch ) => {
741
+ try {
742
+ if ( ! skills ) {
743
+ return
744
+ }
745
+ await updateChallengeSkillsApi ( {
746
+ workId : challengeId ,
747
+ workTypeId : WORK_TYPE_ID ,
748
+ skillIds : skills . map ( skill => skill . id )
749
+ } )
750
+ dispatch ( {
751
+ type : UPDATE_CHALLENGES_SKILLS_SUCCESS ,
752
+ payload : skills
753
+ } )
754
+ } catch ( error ) {
755
+ return _ . get ( error , 'response.data.message' , 'Can not save skill' )
756
+ }
757
+ }
758
+ }
0 commit comments