106 lines
2.9 KiB
Lua
106 lines
2.9 KiB
Lua
local HttpRequest = require("./HttpRequest.lua")
|
|
local Request = HttpRequest.Request
|
|
local APIKeys = require("./APIKeys.lua")
|
|
|
|
local Headers = {
|
|
["Content-Type"] = "application/json",
|
|
["X-API-Key"] = APIKeys.StrafesNET
|
|
}
|
|
|
|
local API_URL = "https://api.strafes.net/api/v1/"
|
|
|
|
local API_ENDPOINTS = {
|
|
MAPS = {
|
|
LIST = "map",
|
|
GET = "map/%d"
|
|
},
|
|
RANKS = {
|
|
LIST = "rank"
|
|
},
|
|
TIMES = {
|
|
LIST = "time",
|
|
GET = "time/%d"
|
|
},
|
|
USERS = {
|
|
LIST = "user",
|
|
GET = "user/%d",
|
|
RANKS = {
|
|
GET = "user/%d/rank"
|
|
}
|
|
}
|
|
}
|
|
|
|
local StrafesNET = {}
|
|
|
|
function StrafesNET.ListMaps(GameId, PageSize, PageNumber)
|
|
local RequestUrl = API_URL .. API_ENDPOINTS.MAPS.LIST
|
|
local Params = { game_id = GameId, page_size = PageSize or 10, page_number = PageNumber or 1 }
|
|
return Request("GET", RequestUrl, Params, Headers)
|
|
end
|
|
|
|
function StrafesNET.GetMap(MapId)
|
|
local RequestUrl = API_URL .. API_ENDPOINTS.MAPS.GET:format(MapId)
|
|
local Params = { id = MapId }
|
|
return Request("GET", RequestUrl, Params, Headers)
|
|
end
|
|
|
|
function StrafesNET.ListRanks(GameId, ModeId, StyleId, SortBy, PageSize, PageNumber)
|
|
local RequestUrl = API_URL .. API_ENDPOINTS.RANKS.LIST
|
|
local Params = {
|
|
gameId = GameId,
|
|
modeId = ModeId,
|
|
styleId = StyleId,
|
|
sort_by = SortBy or 1,
|
|
page_size = PageSize or 10,
|
|
page_number = PageNumber or 1
|
|
}
|
|
return Request("GET", RequestUrl, Params, Headers)
|
|
end
|
|
|
|
function StrafesNET.ListTimes(UserId, MapId, GameId, ModeId, StyleId, SortBy, PageSize, PageNumber)
|
|
local RequestUrl = API_URL .. API_ENDPOINTS.TIMES.LIST
|
|
local Params = {
|
|
user_id = UserId,
|
|
map_id = MapId,
|
|
game_id = GameId,
|
|
mode_id = ModeId,
|
|
style_id = StyleId,
|
|
sort_by = SortBy or 1,
|
|
page_size = PageSize or 10,
|
|
page_number = PageNumber or 0
|
|
}
|
|
return Request("GET", RequestUrl, Params, Headers)
|
|
end
|
|
|
|
function StrafesNET.GetTime(TimeId)
|
|
local RequestUrl = API_URL .. API_ENDPOINTS.TIMES.GET:format(TimeId)
|
|
return Request("GET", RequestUrl, nil, Headers)
|
|
end
|
|
|
|
function StrafesNET.ListUsers(StateId, PageSize, PageNumber)
|
|
local RequestUrl = API_URL .. API_ENDPOINTS.USERS.LIST
|
|
local Params = {
|
|
state_id = StateId,
|
|
page_size = PageSize or 10,
|
|
page_number = PageNumber or 1,
|
|
}
|
|
return Request("GET", RequestUrl, Params, Headers)
|
|
end
|
|
|
|
function StrafesNET.GetUser(UserId)
|
|
local RequestUrl = API_URL .. API_ENDPOINTS.USERS.GET:format(UserId)
|
|
return Request("GET", RequestUrl, nil, Headers)
|
|
end
|
|
|
|
function StrafesNET.GetUserRank(UserId, GameId, ModeId, StyleId)
|
|
local RequestUrl = API_URL .. API_ENDPOINTS.USERS.RANKS.GET:format(UserId)
|
|
local Params = {
|
|
game_id = GameId,
|
|
mode_id = ModeId,
|
|
style_id = StyleId,
|
|
}
|
|
return Request("GET", RequestUrl, Params, Headers)
|
|
end
|
|
|
|
return StrafesNET
|