openblox
Version:
Roblox API Wrapper For Both Classic And OpenCloud APIs.
216 lines (215 loc) • 8.94 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 catalog_exports = {};
__export(catalog_exports, {
assetFavoritesCount: () => assetFavoritesCount,
assetIdsToCatalogCategoryIds: () => assetIdsToCatalogCategoryIds,
assetIdsToCatalogSubCategoryIds: () => assetIdsToCatalogSubCategoryIds,
authedUserCreateAssetFavorite: () => authedUserCreateAssetFavorite,
authedUserCreateBundleFavorite: () => authedUserCreateBundleFavorite,
authedUserFavoritedBundlesOfType: () => authedUserFavoritedBundlesOfType,
authedUserGetAssetFavorite: () => authedUserGetAssetFavorite,
authedUserGetBundleFavorite: () => authedUserGetBundleFavorite,
authedUserRemoveAssetFavorite: () => authedUserRemoveAssetFavorite,
authedUserRemoveBundleFavorite: () => authedUserRemoveBundleFavorite,
bundleFavoritesCount: () => bundleFavoritesCount,
bundleInfo: () => bundleInfo,
bundlesAssetIsIn: () => bundlesAssetIsIn,
bundlesInfo: () => bundlesInfo,
bundlesOfTypeOwnedByUser: () => bundlesOfTypeOwnedByUser,
bundlesOwnedByUser: () => bundlesOwnedByUser,
catalogBatchInfo: () => catalogBatchInfo,
catalogCategories: () => catalogCategories,
catalogSubCategories: () => catalogSubCategories,
recommendationsForBundle: () => recommendationsForBundle
});
module.exports = __toCommonJS(catalog_exports);
var import_apiGroup = require("../../apiGroup");
var import_utils = require("../../../utils/utils");
const { createApiMethod } = (0, import_apiGroup.createApiGroup)({ name: "ClassicCatalog", baseUrl: "https://catalog.roblox.com" });
const bundleTypeNameToId = {
"BodyParts": 1,
"Animations": 2,
"Shoes": 3,
"DynamicHead": 4,
"DynamicHeadAvatar": 5
};
const prettifyBundleData = (bundle) => {
const collectibleItemDetail = bundle.collectibleItemDetail;
if (!collectibleItemDetail) return bundle;
const offSaleDeadLine = collectibleItemDetail.offSaleDeadLine;
if (!offSaleDeadLine) return bundle;
return {
...bundle,
collectibleItemDetail: (0, import_utils.cloneAndMutateObject)(collectibleItemDetail, (obj) => obj.offSaleDeadLine = new Date(offSaleDeadLine))
};
};
const formatBatchCatalogIds = (assetIds, bundleIds) => {
const data = [];
if (assetIds) assetIds.forEach((id) => data.push({ itemType: 1, id }));
if (bundleIds) bundleIds.forEach((id) => data.push({ itemType: 2, id }));
return data;
};
const assetIdsToCatalogCategoryIds = createApiMethod(async () => ({
method: "GET",
path: `/v1/asset-to-category`,
name: `assetIdsToCatalogCategoryIds`
}));
const assetIdsToCatalogSubCategoryIds = createApiMethod(async () => ({
method: "GET",
path: `/v1/asset-to-subcategory`,
name: `assetIdsToCatalogSubCategoryIds`
}));
const catalogCategories = createApiMethod(async () => ({
method: "GET",
path: `/v1/categories`,
name: `catalogCategories`
}));
const catalogSubCategories = createApiMethod(async () => ({
method: "GET",
path: `/v1/subcategories`,
name: `catalogSubCategories`
}));
const bundlesAssetIsIn = createApiMethod(async ({ assetId, limit, sortOrder, cursor }) => ({
method: "GET",
path: `/v1/assets/${assetId}/bundles`,
searchParams: { limit, sortOrder, cursor },
name: `bundlesAssetIsIn`,
formatRawDataFn: ({ data }) => data.map(prettifyBundleData)
}));
const bundleInfo = createApiMethod(async ({ bundleId }) => ({
method: "GET",
path: `/v1/bundles/${bundleId}/details`,
name: `bundleInfo`,
formatRawDataFn: prettifyBundleData
}));
const recommendationsForBundle = createApiMethod(async ({ bundleId, amount }) => ({
method: "GET",
path: `/v1/bundles/${bundleId}/recommendations`,
searchParams: { numItems: amount },
name: `recommendationsForBundle`,
formatRawDataFn: ({ data }) => data.map(prettifyBundleData)
}));
const bundlesInfo = createApiMethod(async ({ bundleIds }) => ({
method: "GET",
path: `/v1/bundles/details`,
searchParams: { bundleIds },
name: `bundlesInfo`,
formatRawDataFn: (rawData) => rawData.map(prettifyBundleData)
}));
const bundlesOwnedByUser = createApiMethod(async ({ userId, limit, sortOrder, cursor }) => ({
method: "GET",
path: `/v1/users/${userId}/bundles`,
searchParams: { limit, sortOrder, cursor },
name: `bundlesOwnedByUser`,
formatRawDataFn: ({ data }) => data.map(prettifyBundleData)
}));
const bundlesOfTypeOwnedByUser = createApiMethod(async ({ userId, bundleType, limit, sortOrder, cursor }) => ({
method: "GET",
path: `/v1/users/${userId}/bundles/${bundleType}`,
searchParams: { limit, sortOrder, cursor },
name: `bundlesOwnedByUser`,
formatRawDataFn: ({ data }) => data
}));
const assetFavoritesCount = createApiMethod(async ({ assetId }) => ({
method: "GET",
path: `/v1/favorites/assets/${assetId}/count`,
name: `assetFavoritesCount`
}));
const bundleFavoritesCount = createApiMethod(async ({ bundleId }) => ({
method: "GET",
path: `/v1/favorites/bundles/${bundleId}/count`,
name: `bundleFavoritesCount`
}));
const authedUserRemoveAssetFavorite = createApiMethod(async ({ userId, assetId }) => ({
method: "DELETE",
path: `/v1/favorites/users/${userId}/assets/${assetId}/favorite`,
name: `authedUserRemoveAssetFavorite`,
formatRawDataFn: import_utils.dataIsSuccess
}));
const authedUserGetAssetFavorite = createApiMethod(async ({ userId, assetId }) => ({
method: "GET",
path: `/v1/favorites/users/${userId}/assets/${assetId}/favorite`,
name: `authedUserGetAssetFavorite`,
formatRawDataFn: (rawData) => rawData ? (0, import_utils.cloneAndMutateObject)(rawData, (obj) => obj.created = new Date(obj.created)) : rawData
}));
const authedUserCreateAssetFavorite = createApiMethod(async ({ userId, assetId }) => ({
method: "POST",
path: `/v1/favorites/users/${userId}/assets/${assetId}/favorite`,
name: `authedUserCreateAssetFavorite`,
formatRawDataFn: import_utils.dataIsSuccess
}));
const authedUserRemoveBundleFavorite = createApiMethod(async ({ userId, bundleId }) => ({
method: "DELETE",
path: `/v1/favorites/users/${userId}/bundles/${bundleId}/favorite`,
name: `authedUserRemoveBundleFavorite`,
formatRawDataFn: import_utils.dataIsSuccess
}));
const authedUserGetBundleFavorite = createApiMethod(async ({ userId, bundleId }) => ({
method: "GET",
path: `/v1/favorites/users/${userId}/bundles/${bundleId}/favorite`,
name: `authedUserGetBundleFavorite`,
formatRawDataFn: (rawData) => rawData ? (0, import_utils.cloneAndMutateObject)(rawData, (obj) => obj.created = new Date(obj.created)) : rawData
}));
const authedUserCreateBundleFavorite = createApiMethod(async ({ userId, bundleId }) => ({
method: "POST",
path: `/v1/favorites/users/${userId}/bundles/${bundleId}/favorite`,
name: `authedUserCreateBundleFavorite`,
formatRawDataFn: import_utils.dataIsSuccess
}));
const authedUserFavoritedBundlesOfType = createApiMethod(async ({ userId, bundleType, cursor, isPrevious }) => ({
method: "GET",
path: `/v1/favorites/users/${userId}/favorites/${bundleTypeNameToId[bundleType]}/bundles`,
searchParams: { cursor, isPrevious },
name: `authedUserFavoritedBundlesOfType`,
formatRawDataFn: ({ favorites }) => favorites.map(prettifyBundleData)
}));
const catalogBatchInfo = createApiMethod(async ({ assetIds, bundleIds }) => ({
method: "POST",
path: `/v1/catalog/items/details`,
body: { items: formatBatchCatalogIds(assetIds, bundleIds) },
name: `catalogBatchInfo`,
formatRawDataFn: ({ data }) => data.map((item) => {
const offSaleDeadline = item.offSaleDeadline;
return offSaleDeadline ? (0, import_utils.cloneAndMutateObject)(item, (obj) => obj.offSaleDeadline = new Date(offSaleDeadline)) : item;
})
}));
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
assetFavoritesCount,
assetIdsToCatalogCategoryIds,
assetIdsToCatalogSubCategoryIds,
authedUserCreateAssetFavorite,
authedUserCreateBundleFavorite,
authedUserFavoritedBundlesOfType,
authedUserGetAssetFavorite,
authedUserGetBundleFavorite,
authedUserRemoveAssetFavorite,
authedUserRemoveBundleFavorite,
bundleFavoritesCount,
bundleInfo,
bundlesAssetIsIn,
bundlesInfo,
bundlesOfTypeOwnedByUser,
bundlesOwnedByUser,
catalogBatchInfo,
catalogCategories,
catalogSubCategories,
recommendationsForBundle
});
;