Files
csgowtf/src/utils/ApiRequests.js
2021-11-23 08:56:48 +01:00

132 lines
3.3 KiB
JavaScript

import axios from "axios";
const API_URL = process.env.VUE_APP_API_URL
export const GetMatches = async () => {
try {
const res = await axios.get(`${API_URL}/matches`)
if (res.status === 200)
return res.data
} catch (err) {
// TODO: Error handling
console.log(err.response.status, err.response.statusText)
}
}
export const GetUser = async (id) => {
try {
const res = await axios.get(`${API_URL}/player/${id}`)
if (res.status === 200)
return [res.status, res.data]
} catch (err) {
if (err.response)
return [err.response.status, err.response.statusText]
}
}
export const TrackMe = async (id64, authcode, sharecode = '') => {
let statusError = ''
let status = 202
const shareCodeRegex = /^CSGO(?:-?[ABCDEFGHJKLMNOPQRSTUVWXYZabcdefhijkmnopqrstuvwxyz23456789]{5}){5}$/
const authCodeRegex = /^[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{4}-[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{5}-[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{4}$/
if (sharecode !== '' && !shareCodeRegex.test(sharecode)) {
statusError = 'Is not a valid sharecode'
status = 418
return [status, statusError]
}
if (authcode === '' || !authCodeRegex.test(authcode)) {
statusError = 'Is not a valid authcode'
status = 418
return [status, statusError]
}
try {
const res = await axios
.post(`${API_URL}/player/${id64}/track`, `authcode=${authcode}&sharecode=${sharecode}`)
if (res.status === 202) {
status = res.status
}
} catch (err) {
if (err.response.status === 401) {
statusError = 'Data does not match player'
status = err.response.status
} else if (err.response.status === 400) {
statusError = 'Userinput was wrong'
status = err.response.status
} else {
console.log(`${err.response.status}: ${err.response.statusText}`)
}
}
return [status, statusError]
}
export const GetPlayerValue = async (match_id) => {
try {
const res = await axios.get(`${API_URL}/match/${match_id}/rounds`)
if (res.status === 200) {
return res.data
}
} catch (err) {
console.log(err.response.status, err.response.statusText)
}
}
export const GetMatchDetails = async (match_id) => {
try {
const res = await axios.get(`${API_URL}/match/${match_id}`)
if (res.status === 200) {
return res.data
}
} catch (err) {
// TODO: 400, 404
console.log(err.response.status, err.response.statusText)
}
}
export const LoadMoreMatches = async (player_id, date) => {
try {
const res = await axios.get(`${API_URL}/player/${player_id}/next/${date}`)
if (res.status === 200) {
return res.data
}
} catch (err) {
// TODO: 400, 404
console.log(err.response.status, err.response.statusText)
}
}
export const GetPlayerMeta = async (player_id, limit = 4) => {
try {
const res = await axios.get(`${API_URL}/player/${player_id}/meta/${limit}`)
if (res.status === 200) {
return res.data
}
} catch (err) {
// TODO: 400, 404
console.log(err.response.status, err.response.statusText)
}
}
export const GetWeaponDmg = async (match_id) => {
try {
const res = await axios.get(`${API_URL}/match/${match_id}/weapons`)
if (res.status === 200) {
return res.data
}
} catch (e) {
// TODO: 400, 404
console.log(e)
}
}