SyntaxGameServer/RCCService2020/ExtraContent/LuaPackages/AppTempCommon/LuaApp/Thunks/ApiFetchGameIcons.lua

30 lines
1.0 KiB
Lua

local CorePackages = game:GetService("CorePackages")
local AppTempCommon = CorePackages.AppTempCommon
local Promise = require(AppTempCommon.LuaApp.Promise)
local ApiFetchThumbnails = require(AppTempCommon.LuaApp.Utils.ApiFetchThumbnails)
local GamesGetIcons = require(AppTempCommon.LuaApp.Http.Requests.GamesGetIcons)
local SetGameIcons = require(AppTempCommon.LuaApp.Actions.SetGameIcons)
local DEFAULT_ICON_SIZE = "150x150"
return function (networkImpl, universeIds, imageSize)
return function(store)
local state = store:getState()
local stateToCheckForDuplicates = state.GameIcons
-- Filter out the icons that are already in the store.
local idsToGet = {}
for _, targetId in pairs(universeIds) do
if stateToCheckForDuplicates[targetId] == nil then
table.insert(idsToGet, targetId)
end
end
if #idsToGet == 0 then
return Promise.resolve()
else
return ApiFetchThumbnails.Fetch(networkImpl,
idsToGet, imageSize or DEFAULT_ICON_SIZE, "Game", GamesGetIcons, SetGameIcons, store)
end
end
end