diff --git a/config/test.js b/config/test.js index add8c31c..1d2ca856 100644 --- a/config/test.js +++ b/config/test.js @@ -2,6 +2,7 @@ module.exports = { API: { V2: 'https://api.topcoder-dev.com/v2', V3: 'https://api.topcoder-dev.com/v3', + V5: 'https://api.topcoder-dev.com/v5', }, dummyConfigKey: 'Dummy config value', SECRET: { diff --git a/src/actions/smp.js b/src/actions/smp.js index 9c46f513..4cb5f34a 100644 --- a/src/actions/smp.js +++ b/src/actions/smp.js @@ -6,6 +6,7 @@ import _ from 'lodash'; import { createActions } from 'redux-actions'; import { getApi } from '../services/api'; +import { getService as getSubmissionService } from '../services/submissions'; /** * @static @@ -17,13 +18,25 @@ function deleteSubmissionInit() {} /** * @static * @desc Creates an action that deletes user's submission to a challenge. - * @param {String} tokenV3 Topcoder v3 auth token. + * @param {String} tokenV5 Topcoder v5 auth token. * @param {Number|String} submissionId Submission ID. * @return {Action} */ -function deleteSubmissionDone(tokenV3, submissionId) { - return getApi('V3', tokenV3).delete(`/submissions/${submissionId}`) - .then(() => submissionId); +function deleteSubmissionDone(tokenV5, submissionId) { + const submissionsService = getSubmissionService(tokenV5); + const filters = { legacySubmissionId: submissionId }; + + // from the legacy submissionId first get the GUID of the submission + // and pass that id to the V5 api + return submissionsService.getSubmissions(filters, {}) + .then((submissions) => { + if (submissions.length === 0) { + throw new Error(`Submission ${submissionId} does not exist.`); + } + return getApi('V5', tokenV5).delete(`/submissions/${submissions[0].id}`) + .then(res => (res.ok ? submissionId : new Error(res.statusText))) + .then(res => res); + }); } /**