Files
habitica/website/client/js/services/challengeServices.js
T
Keith Holliday bc44fa062e Api v3 challenge fixes (#7287)
* Fixed join/leave button updates

* Queried only user groups to be available when creating challenges

* Fixed bulk add tasks to challenge

* Synced challenge tasks after leave and join.

* Fixed default selected group

* Fixed challenge member info. Fixed challenge winner selection

* Fixed deleting challenge tasks

* Fixed particiapting filter

* Fixed viewing user progress on challenge

* Updated tests

* Added delete for saved challenge task
2016-05-16 21:49:22 +02:00

96 lines
2.4 KiB
JavaScript

'use strict';
angular.module('habitrpg')
.factory('Challenges', ['ApiUrl', '$resource', '$http',
function(ApiUrl, $resource, $http) {
var apiV3Prefix = '/api/v3';
function createChallenge (challengeData) {
return $http({
method: 'POST',
url: apiV3Prefix + '/challenges',
data: challengeData,
});
}
function joinChallenge (challengeId) {
return $http({
method: 'POST',
url: apiV3Prefix + '/challenges/' + challengeId + '/join',
});
}
function leaveChallenge (challengeId, keep) {
return $http({
method: 'POST',
url: apiV3Prefix + '/challenges/' + challengeId + '/leave',
data: {
keep: keep,
}
});
}
function getUserChallenges () {
return $http({
method: 'GET',
url: apiV3Prefix + '/challenges/user',
});
}
function getGroupChallenges (groupId) {
return $http({
method: 'GET',
url: apiV3Prefix + '/challenges/groups/' + groupId,
});
}
function getChallenge (challengeId) {
return $http({
method: 'GET',
url: apiV3Prefix + '/challenges/' + challengeId,
});
}
function exportChallengeCsv (challengeId) {
return $http({
method: 'GET',
url: apiV3Prefix + '/challenges/' + challengeId + '/export/csv',
});
}
function updateChallenge (challengeId, updateData) {
return $http({
method: 'PUT',
url: apiV3Prefix + '/challenges/' + challengeId,
data: updateData,
});
}
function deleteChallenge (challengeId) {
return $http({
method: 'DELETE',
url: apiV3Prefix + '/challenges/' + challengeId,
});
}
function selectChallengeWinner (challengeId, winnerId) {
return $http({
method: 'POST',
url: apiV3Prefix + '/challenges/' + challengeId + '/selectWinner/' + winnerId,
});
}
return {
createChallenge: createChallenge,
joinChallenge: joinChallenge,
leaveChallenge: leaveChallenge,
getUserChallenges: getUserChallenges,
getGroupChallenges: getGroupChallenges,
getChallenge: getChallenge,
exportChallengeCsv: exportChallengeCsv,
updateChallenge: updateChallenge,
deleteChallenge: deleteChallenge,
selectChallengeWinner: selectChallengeWinner,
}
}]);