import axios from "axios";
import Random from "@/api/Random";
export default class AdminApi {
    permition = {
        ban:false,
        mute:false,
        kick:false,
        alt:false,
        z:false
    }

    async checkPermition(name) {
        return axios.options(`/api/admin/${name}` + Random.getRndWebNew())
                .then(response => {
                    if (response.status === 200) this.permition[name] = true;
                })
                .catch((err) => {
                    if (err.response.status === 200) this.permition[name] = true;
                });
    }

    async checkAltAccess(){
        return axios.options('/api/admin/db/alt' + Random.getRndWebNew()).then(
            response => {
                if (response.status === 200) {
                    this.permition.alt = true;
                    this.permition.z = true;
                } else {
                    this.permition.alt = false;
                    this.permition.z = false;
                }
            }
        ).catch(()=>{
            this.permition.alt = false;
            this.z = false;
        })
    }

    async load(stages) {
        console.log(`[AdminAPI] request permissions`);
        if (document.cookie.indexOf("steam64=") === -1) return;
        stages.add("permitions")
        await Promise.all([
            this.checkPermition('ban'),
            this.checkPermition('mute'),
            this.checkPermition('kick'),
            this.checkAltAccess()
            ]);
        stages.remove("permitions");
    }
}