mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 14:47:53 +01:00
allows players to send gems to each other; other minor related changes - fixes https://github.com/HabitRPG/habitrpg/issues/7227
This commit is contained in:
@@ -124,13 +124,14 @@
|
|||||||
"invalidTypeEquip": "\"type\" must be one of 'equipped', 'pet', 'mount', 'costume'.",
|
"invalidTypeEquip": "\"type\" must be one of 'equipped', 'pet', 'mount', 'costume'.",
|
||||||
"cannotDeleteActiveAccount": "You have an active subscription, cancel your plan before deleting your account.",
|
"cannotDeleteActiveAccount": "You have an active subscription, cancel your plan before deleting your account.",
|
||||||
"messageRequired": "A message is required.",
|
"messageRequired": "A message is required.",
|
||||||
"toUserIDRequired": "A toUserId is required",
|
"toUserIDRequired": "A User ID is required",
|
||||||
|
"gemAmountRequired": "A number of gems is required",
|
||||||
"notAuthorizedToSendMessageToThisUser": "Can't send message to this user.",
|
"notAuthorizedToSendMessageToThisUser": "Can't send message to this user.",
|
||||||
"privateMessageGiftIntro": "Hello <%= receiverName %>, <%= senderName %> has sent you ",
|
"privateMessageGiftIntro": "Hello <%= receiverName %>, <%= senderName %> has sent you ",
|
||||||
"privateMessageGiftGemsMessage": "<%= gemAmount %> gems! ",
|
"privateMessageGiftGemsMessage": "<%= gemAmount %> gems! ",
|
||||||
"privateMessageGiftSubscriptionMessage": "<%= numberOfMonths %> months of subscription! ",
|
"privateMessageGiftSubscriptionMessage": "<%= numberOfMonths %> months of subscription! ",
|
||||||
"cannotSendGemsToYourself": "Cannot send gems to yourself. Try a subscription instead.",
|
"cannotSendGemsToYourself": "Cannot send gems to yourself. Try a subscription instead.",
|
||||||
"notEnoughGemsToSend": "Amount must be within 0 and your current number of gems.",
|
"badAmountOfGemsToSend": "Amount must be within 1 and your current number of gems.",
|
||||||
"mustPurchaseToSet": "Must purchase <%= val %> to set it on <%= key %>.",
|
"mustPurchaseToSet": "Must purchase <%= val %> to set it on <%= key %>.",
|
||||||
"typeRequired": "Type is required",
|
"typeRequired": "Type is required",
|
||||||
"keyRequired": "Key is required",
|
"keyRequired": "Key is required",
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ describe('POST /members/transfer-gems', () => {
|
|||||||
})).to.eventually.be.rejected.and.eql({
|
})).to.eventually.be.rejected.and.eql({
|
||||||
code: 401,
|
code: 401,
|
||||||
error: 'NotAuthorized',
|
error: 'NotAuthorized',
|
||||||
message: t('notEnoughGemsToSend'),
|
message: t('badAmountOfGemsToSend'),
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -92,7 +92,7 @@ describe('POST /members/transfer-gems', () => {
|
|||||||
})).to.eventually.be.rejected.and.eql({
|
})).to.eventually.be.rejected.and.eql({
|
||||||
code: 401,
|
code: 401,
|
||||||
error: 'NotAuthorized',
|
error: 'NotAuthorized',
|
||||||
message: t('notEnoughGemsToSend'),
|
message: t('badAmountOfGemsToSend'),
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -105,7 +105,7 @@ describe('POST /members/transfer-gems', () => {
|
|||||||
})).to.eventually.be.rejected.and.eql({
|
})).to.eventually.be.rejected.and.eql({
|
||||||
code: 401,
|
code: 401,
|
||||||
error: 'NotAuthorized',
|
error: 'NotAuthorized',
|
||||||
message: t('notEnoughGemsToSend'),
|
message: t('badAmountOfGemsToSend'),
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ habitrpg
|
|||||||
};
|
};
|
||||||
|
|
||||||
$scope.sendGift = function (uuid, gift) {
|
$scope.sendGift = function (uuid, gift) {
|
||||||
Members.transferGems(message, uuid, $scope.gift.gems.amount)
|
Members.transferGems($scope.gift.message, uuid, $scope.gift.gems.amount)
|
||||||
.then(function (response) {
|
.then(function (response) {
|
||||||
Notification.text('Gift sent!')
|
Notification.text('Gift sent!')
|
||||||
$rootScope.User.sync();
|
$rootScope.User.sync();
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ angular.module('habitrpg')
|
|||||||
function transferGems (message, toUserId, gemAmount) {
|
function transferGems (message, toUserId, gemAmount) {
|
||||||
return $http({
|
return $http({
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
url: apiV3Prefix + '/members/send-private-message',
|
url: apiV3Prefix + '/members/transfer-gems',
|
||||||
data: {
|
data: {
|
||||||
message: message,
|
message: message,
|
||||||
toUserId: toUserId,
|
toUserId: toUserId,
|
||||||
|
|||||||
@@ -297,6 +297,7 @@ api.sendPrivateMessage = {
|
|||||||
*
|
*
|
||||||
* @apiParam {String} message Body parameter The message
|
* @apiParam {String} message Body parameter The message
|
||||||
* @apiParam {UUID} toUserId Body parameter The toUser _id
|
* @apiParam {UUID} toUserId Body parameter The toUser _id
|
||||||
|
* @apiParam {Integer} gemAmount Body parameter The number of gems to send
|
||||||
*
|
*
|
||||||
* @apiSuccess {Object} data An empty Object
|
* @apiSuccess {Object} data An empty Object
|
||||||
*/
|
*/
|
||||||
@@ -307,6 +308,7 @@ api.transferGems = {
|
|||||||
async handler (req, res) {
|
async handler (req, res) {
|
||||||
req.checkBody('message', res.t('messageRequired')).notEmpty();
|
req.checkBody('message', res.t('messageRequired')).notEmpty();
|
||||||
req.checkBody('toUserId', res.t('toUserIDRequired')).notEmpty().isUUID();
|
req.checkBody('toUserId', res.t('toUserIDRequired')).notEmpty().isUUID();
|
||||||
|
req.checkBody('gemAmount', res.t('gemAmountRequired')).notEmpty().isInt();
|
||||||
|
|
||||||
let validationErrors = req.validationErrors();
|
let validationErrors = req.validationErrors();
|
||||||
if (validationErrors) throw validationErrors;
|
if (validationErrors) throw validationErrors;
|
||||||
@@ -324,7 +326,7 @@ api.transferGems = {
|
|||||||
let amount = gemAmount / 4;
|
let amount = gemAmount / 4;
|
||||||
|
|
||||||
if (!amount || amount <= 0 || sender.balance < amount) {
|
if (!amount || amount <= 0 || sender.balance < amount) {
|
||||||
throw new NotAuthorized(res.t('notEnoughGemsToSend'));
|
throw new NotAuthorized(res.t('badAmountOfGemsToSend'));
|
||||||
}
|
}
|
||||||
|
|
||||||
receiver.balance += amount;
|
receiver.balance += amount;
|
||||||
|
|||||||
Reference in New Issue
Block a user