diff --git a/src/api/inventory.js b/src/api/inventory.js index b9fcc560..0f6ead42 100644 --- a/src/api/inventory.js +++ b/src/api/inventory.js @@ -86,6 +86,24 @@ const inventoryReq = { }; return args; }); + }, + + /** + * @param {{ code: string }} params + * @returns {Promise<{json: any, params}>} + * Note: Do not redeem + */ + redeemReward(params) { + return request('reward/redeem', { + method: 'POST', + params + }).then((json) => { + const args = { + json, + params + }; + return args; + }); } }; diff --git a/src/localization/en/en.json b/src/localization/en/en.json index d7502837..29fbf250 100644 --- a/src/localization/en/en.json +++ b/src/localization/en/en.json @@ -1534,7 +1534,8 @@ "item": "Item", "sticker": "Sticker", "drone_skin": "Drone Skin", - "emoji": "Emoji" + "emoji": "Emoji", + "redeem": "Redeem" }, "change_content_image": { "avatar": "Change Avatar Image", @@ -1998,6 +1999,15 @@ "placeholder": "127.0.0.1:8080", "close": "Close", "restart": "Restart" + }, + "redeem": { + "header": "Redeem Code", + "description": "Enter your code to redeem", + "cancel": "Cancel", + "redeem": "Redeem", + "input_placeholder": "Code", + "input_error": "Code is required", + "success": "Code redeemed successfully" } }, "table": { diff --git a/src/service/request.js b/src/service/request.js index cc3d5eff..5b200b8c 100644 --- a/src/service/request.js +++ b/src/service/request.js @@ -285,6 +285,7 @@ export function $throw(code, error, endpoint) { (endpoint.startsWith('users/') || endpoint.startsWith('worlds/') || endpoint.startsWith('avatars/') || + endpoint.startsWith('groups/') || endpoint.startsWith('file/')) ) { ignoreError = true; diff --git a/src/views/Tools/dialogs/GalleryDialog.vue b/src/views/Tools/dialogs/GalleryDialog.vue index 19669e7a..f2832c62 100644 --- a/src/views/Tools/dialogs/GalleryDialog.vue +++ b/src/views/Tools/dialogs/GalleryDialog.vue @@ -486,6 +486,9 @@ {{ t('dialog.gallery_icons.refresh') }} + + {{ t('dialog.gallery_icons.redeem') }} +
@@ -534,8 +537,8 @@