48 lines
1.3 KiB
Lua
48 lines
1.3 KiB
Lua
local CorePackages = game:GetService("CorePackages")
|
|
|
|
local Url = require(CorePackages.AppTempCommon.LuaApp.Http.Url)
|
|
|
|
--[[
|
|
This endpoint returns a promise that resolves to:
|
|
[
|
|
{
|
|
"final": true,
|
|
"url": "string",
|
|
"retryToken": "string",
|
|
"universeId": 0,
|
|
"placeId": 0
|
|
}, {...}, ...
|
|
]
|
|
]]
|
|
|
|
-- requestImpl - (function<promise<HttpResponse>>(url, requestMethod, options))
|
|
-- imageTokens - (array<long>) the placeIds of the places you want to get thumbnails for
|
|
-- height - (int) the height of the asset to render
|
|
-- width - (int) the width of the asset to render
|
|
return function(requestImpl, imageTokens, height, width)
|
|
local args = {}
|
|
|
|
if height then
|
|
table.insert(args, string.format("height=%d", height))
|
|
end
|
|
|
|
if width then
|
|
table.insert(args, string.format("width=%d", width))
|
|
end
|
|
|
|
-- append all of the thumbnail tokens
|
|
local totalTokens = 0
|
|
for _, value in pairs(imageTokens) do
|
|
totalTokens = totalTokens + 1
|
|
table.insert(args, string.format("imageTokens=%s", value))
|
|
end
|
|
if totalTokens == 0 then
|
|
error("cannot fetch thumbnails without tokens")
|
|
end
|
|
|
|
-- construct the url
|
|
local url = string.format("%sv1/games/game-thumbnails?%s", Url.GAME_URL, table.concat(args, "&"))
|
|
|
|
-- return a promise of the result listed above
|
|
return requestImpl(url, "GET")
|
|
end |