openblox
Version:
Roblox API Wrapper For Both Classic And OpenCloud APIs.
123 lines (122 loc) • 5.79 kB
JavaScript
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
});
;