6
6
import _ from 'lodash' ;
7
7
import { createActions } from 'redux-actions' ;
8
8
import { getApi } from '../services/api' ;
9
+ import { getService as getSubmissionService } from '../services/submissions' ;
9
10
10
11
/**
11
12
* @static
@@ -17,13 +18,25 @@ function deleteSubmissionInit() {}
17
18
/**
18
19
* @static
19
20
* @desc Creates an action that deletes user's submission to a challenge.
20
- * @param {String } tokenV3 Topcoder v3 auth token.
21
+ * @param {String } tokenV5 Topcoder v5 auth token.
21
22
* @param {Number|String } submissionId Submission ID.
22
23
* @return {Action }
23
24
*/
24
- function deleteSubmissionDone ( tokenV3 , submissionId ) {
25
- return getApi ( 'V3' , tokenV3 ) . delete ( `/submissions/${ submissionId } ` )
26
- . then ( ( ) => submissionId ) ;
25
+ function deleteSubmissionDone ( tokenV5 , submissionId ) {
26
+ const submissionsService = getSubmissionService ( tokenV5 ) ;
27
+ const filters = { legacySubmissionId : submissionId } ;
28
+
29
+ // from the legacy submissionId first get the GUID of the submission
30
+ // and pass that id to the V5 api
31
+ return submissionsService . getSubmissions ( filters , { } )
32
+ . then ( ( submissions ) => {
33
+ if ( submissions . length === 0 ) {
34
+ throw new Error ( `Submission ${ submissionId } does not exist.` ) ;
35
+ }
36
+ return getApi ( 'V5' , tokenV5 ) . delete ( `/submissions/${ submissions [ 0 ] . id } ` )
37
+ . then ( res => ( res . ok ? submissionId : new Error ( res . statusText ) ) )
38
+ . then ( res => res ) ;
39
+ } ) ;
27
40
}
28
41
29
42
/**
0 commit comments