UNPKG

openblox

Version:

Roblox API Wrapper For Both Classic And OpenCloud APIs.

123 lines (122 loc) 5.79 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var subscriptions_exports = {}; __export(subscriptions_exports, { authenticatedUserSubscriptionsPermissionsForUniverse: () => authenticatedUserSubscriptionsPermissionsForUniverse, createSubscription: () => createSubscription, setSubscriptionIcon: () => setSubscriptionIcon, subscriptionInfo: () => subscriptionInfo, subscriptionsForUniverse: () => subscriptionsForUniverse, subscriptionsPriceTiersForUniverse: () => subscriptionsPriceTiersForUniverse }); module.exports = __toCommonJS(subscriptions_exports); var import_apiGroup = require("../../apiGroup"); var import_utils = require("../../../utils/utils"); var import_file = require("../../../file"); const { createApiMethod } = (0, import_apiGroup.createApiGroup)({ name: "ClassicSubscriptions", baseUrl: "https://apis.roblox.com/experience-subscriptions" }); const subscriptionTypeToId = { "Durable": 3, "Currency": 2, "Consumable": 1 }; const subsriptionIdToType = { 3: "Durable", 2: "Currency", 1: "Consumable" }; const subscriptionPriceToId = { "$2.99": "919c5912-7de8-413c-9756-d4265b3cbd3a", "$4.99": "c0516080-fc44-42a2-bc23-3c6dbfd0772d", "$7.99": "75c782ff-9d8b-4cf0-b3d8-64dd0ec4676a", "$9.99": "1adf5d0a-eabb-4d5d-a9e7-d9ab28dcb7c7", "$14.99": "790ff0ac-ef4b-490e-9b95-89f9249b8f51" }; const subscriptionIdToPrice = { "919c5912-7de8-413c-9756-d4265b3cbd3a": "$2.99", "c0516080-fc44-42a2-bc23-3c6dbfd0772d": "$4.99", "75c782ff-9d8b-4cf0-b3d8-64dd0ec4676a": "$7.99", "1adf5d0a-eabb-4d5d-a9e7-d9ab28dcb7c7": "$9.99", "790ff0ac-ef4b-490e-9b95-89f9249b8f51": "$14.99" }; const createSubscription = createApiMethod(async ({ universeId, name, description, type, price }) => ({ path: `/v1/experiences/${universeId}/experience-subscriptions`, method: "POST", body: { productName: name, productDescription: description, productType: subscriptionTypeToId[type], basePriceId: subscriptionPriceToId[price] }, name: "createSubscription", formatRawDataFn: ({ developerSubscription }) => (0, import_utils.cloneAndMutateObject)(developerSubscription, (obj) => { obj.periodType = "Monthly"; obj.developerSubscriptionProductType = subsriptionIdToType[obj.developerSubscriptionProductType]; }) })); const setSubscriptionIcon = createApiMethod(async ({ universeId, subscriptionId, actingUserId, icon }) => ({ path: `/v1/experiences/${universeId}/experience-subscriptions/${subscriptionId}/upload-image`, method: "POST", formData: (0, import_utils.formDataBuilder)().append("ActingUserId", actingUserId.toString()).append("ImageFile", typeof icon == "string" ? new File([new Blob([await (0, import_file.readFile)(icon)])], "ImageFile") : icon), name: "setSubscriptionIcon", formatRawDataFn: ({ status }) => status })); const subscriptionsForUniverse = createApiMethod(async ({ universeId, resultsPerPage, cursor }) => ({ path: `/v1/experiences/${universeId}/experience-subscriptions`, method: "GET", searchParams: { ResultsPerPage: resultsPerPage, Cursor: cursor }, name: "subscriptionsForUniverse", formatRawDataFn: ({ developerSubscriptions }) => (0, import_utils.cloneAndMutateObject)(developerSubscriptions, (obj) => { obj.forEach((subscription) => { subscription.periodType = "Monthly"; subscription.basePrice = subscriptionIdToPrice[subscription.basePriceId]; subscription.productType = subsriptionIdToType[subscription.productType]; }); }), getCursorsFn: ({ previousCursor, nextCursor }) => [previousCursor, nextCursor] })); const subscriptionInfo = createApiMethod(async ({ universeId, subscriptionId }) => ({ path: `/v1/experiences/${universeId}/experience-subscriptions/${subscriptionId}`, method: "GET", name: "subscriptionInfo", formatRawDataFn: (rawData) => (0, import_utils.cloneAndMutateObject)(rawData, (obj) => { obj.periodType = "Monthly"; obj.basePrice = subscriptionIdToPrice[obj.basePriceId]; obj.productType = subsriptionIdToType[obj.productType]; }) })); const subscriptionsPriceTiersForUniverse = createApiMethod(async ({ universeId }) => ({ path: `/v1/experiences/${universeId}/experience-subscriptions/prices`, method: "GET", name: "subscriptionsPriceTiersForUniverse", formatRawDataFn: ({ priceTierPrices }) => (0, import_utils.cloneAndMutateObject)(priceTierPrices, (obj) => { for (const key in priceTierPrices) { const { units, cents } = priceTierPrices[key]; obj[key] = `$${units}.${cents}`; } }) })); const authenticatedUserSubscriptionsPermissionsForUniverse = createApiMethod(async ({ universeId }) => ({ path: `/v1/experiences/${universeId}/experience-subscriptions/permission`, method: "GET", name: "authenticatedUserSubscriptionsPermissionsForUniverse" })); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { authenticatedUserSubscriptionsPermissionsForUniverse, createSubscription, setSubscriptionIcon, subscriptionInfo, subscriptionsForUniverse, subscriptionsPriceTiersForUniverse });