initial commit
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
local ____lualib = require("lualib_bundle")
|
||||
local __TS__ArrayIsArray = ____lualib.__TS__ArrayIsArray
|
||||
local ____exports = {}
|
||||
local ____api_helper = require("api_helper")
|
||||
local encodeApiBody = ____api_helper.encodeApiBody
|
||||
local setApiHeaders = ____api_helper.setApiHeaders
|
||||
local ____server_config = require("server_config")
|
||||
local SERVER_CONFIG = ____server_config.SERVER_CONFIG
|
||||
local function decodeBody(self, body, fallback)
|
||||
do
|
||||
local ____try, ____hasReturned, ____returnValue = pcall(function()
|
||||
local parsed = {json.decode(body)}
|
||||
if __TS__ArrayIsArray(parsed) and #parsed > 0 then
|
||||
return true, parsed[1]
|
||||
end
|
||||
if parsed and type(parsed) == "table" then
|
||||
return true, parsed
|
||||
end
|
||||
end)
|
||||
if ____try and ____hasReturned then
|
||||
return ____returnValue
|
||||
end
|
||||
end
|
||||
return fallback
|
||||
end
|
||||
function ____exports.getSteamIdForApi(self, playerId)
|
||||
local steamId = PlayerResource:GetSteamAccountID(playerId)
|
||||
if not steamId or steamId <= 0 then
|
||||
return nil
|
||||
end
|
||||
return steamId
|
||||
end
|
||||
function ____exports.loadEquipmentStateFromApi(self, playerId, onDone)
|
||||
local steamId = ____exports.getSteamIdForApi(nil, playerId)
|
||||
if not steamId then
|
||||
onDone(nil, nil)
|
||||
return
|
||||
end
|
||||
local req = CreateHTTPRequest(
|
||||
"GET",
|
||||
((SERVER_CONFIG.API_URL .. "/player/") .. tostring(steamId)) .. "/equipment"
|
||||
)
|
||||
setApiHeaders(nil, req)
|
||||
req:Send(function(res)
|
||||
if res.StatusCode >= 200 and res.StatusCode < 300 then
|
||||
local parsed = decodeBody(
|
||||
nil,
|
||||
tostring(res.Body or ""),
|
||||
{}
|
||||
)
|
||||
if parsed.equipment then
|
||||
onDone(nil, parsed.equipment)
|
||||
else
|
||||
onDone(nil, parsed)
|
||||
end
|
||||
return
|
||||
end
|
||||
onDone(nil, nil)
|
||||
end)
|
||||
end
|
||||
function ____exports.saveEquipmentStateToApi(self, playerId, state)
|
||||
local steamId = ____exports.getSteamIdForApi(nil, playerId)
|
||||
if not steamId then
|
||||
return
|
||||
end
|
||||
local req = CreateHTTPRequest(
|
||||
"PUT",
|
||||
((SERVER_CONFIG.API_URL .. "/player/") .. tostring(steamId)) .. "/equipment"
|
||||
)
|
||||
setApiHeaders(nil, req)
|
||||
req:SetHTTPRequestRawPostBody(
|
||||
"application/json",
|
||||
encodeApiBody(nil, {equipment = state})
|
||||
)
|
||||
req:Send(function() return nil end)
|
||||
end
|
||||
function ____exports.postEquipmentDropToApi(self, playerId, item)
|
||||
local steamId = ____exports.getSteamIdForApi(nil, playerId)
|
||||
if not steamId then
|
||||
return
|
||||
end
|
||||
local req = CreateHTTPRequest(
|
||||
"POST",
|
||||
((SERVER_CONFIG.API_URL .. "/player/") .. tostring(steamId)) .. "/equipment/drop"
|
||||
)
|
||||
setApiHeaders(nil, req)
|
||||
req:SetHTTPRequestRawPostBody(
|
||||
"application/json",
|
||||
encodeApiBody(nil, {item = item})
|
||||
)
|
||||
req:Send(function() return nil end)
|
||||
end
|
||||
return ____exports
|
||||
Reference in New Issue
Block a user