{"version":3,"sources":["jsdelivr-header.js","/npm/mykoob-sdk@1.0.0/index.js"],"names":[],"mappings":"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","file":"/npm/mykoob-sdk@1.0.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/mykoob-sdk@1.0.0/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","const axios = require('axios')\nconst Qs = require('qs')\nconst DayJS = require('dayjs')\nconst global = {\n    authUrl: \"https://www.mykoob.lv/?oauth2/authorizeDevice\",\n    resUrl: \"https://www.mykoob.lv/?api/resource\",\n    access_token: null\n}\nclass API {\n    /**\n     * @param {String} username \n     * @param {String} password \n     */\n    constructor(username, password) {\n        this.username = username\n        this.password = password\n    }\n    // ? GetAuthToken\n    async getAuth() {\n        const data = await axios({\n            method: 'POST',\n            url: global.authUrl,\n            data: Qs.stringify({\n                use_oauth_proxy: 1,\n                client: 'MykoobMobile',\n                username: this.username,\n                password: this.password,\n            }),\n        }).then((response) => {\n            if (typeof response.data !== 'object') throw new Error('Response contains invalid data');\n            if (typeof response.data.error !== 'undefined') throw new Error(response.data.error.message);\n            if (typeof response.data.access_token !== 'string') throw new Error('Response does not contain a token');\n            global.access_token = response.data.access_token\n            return response.data\n        })\n        return data\n    }\n\n    async getMyData() {\n        if (global.access_token !== 'string') await this.getAuth()\n        const usersAccounts = []\n        const response = await axios({\n            method: 'POST',\n            url: global.resUrl,\n            data: Qs.stringify({\n                api: 'user_data',\n                access_token: global.access_token,\n            }),\n        })\n        if (typeof response.data !== 'object') throw new Error('Response contains invalid data');\n        if (typeof response.data.error !== 'undefined') throw new Error(response.data.error.message);\n        const users = response.data.user_data\n        for (const u in users.user) {\n            for (const s in users.user[u].school) {\n                for (const c in users.user[u].school[s].class) {\n                    usersAccounts.push({\n                        user: {\n                            id: users.user[u].user_info.user_id,\n                            avatar: users.user[u].user_info.profile_image_base64,\n                            name: users.user[u].user_info.user_name,\n                            surname: users.user[u].user_info.user_surname,\n                            age: users.user[u].user_info.age,\n                            sex: users.user[u].user_info.sex,\n                            phone: users.user[u].user_info.phone_number,\n                        },\n                        school: {\n                            id: users.user[u].school[s].school_id,\n                            name: users.user[u].school[s].name,\n                            userId: users.user[u].school[s].school_user_id,\n                        },\n                        class: {\n                            id: users.user[u].school[s].class[c].school_classes_id,\n                                name: users.user[u].school[s].class[c].class_name,\n                                studentId: users.user[u].school[s].class[c].school_classes_students_id\n                        }\n                    })\n                }\n            }\n        }\n        return usersAccounts\n    }\n\n    async getUnseenEvents() {\n        if (global.access_token !== 'string') await this.getAuth()\n        const response = await axios({\n            method: 'POST',\n            url: global.resUrl,\n            data: Qs.stringify({\n                api: 'unseen_events_count',\n                access_token: global.access_token,\n            }),\n        })\n        if (typeof response.data !== 'object') throw new Error('Response contains invalid data');\n        if (typeof response.data.error !== 'undefined') throw new Error(response.data.error.message);\n        return response.data.unseen_events_count;\n    }\n    async markAllSeen() {\n        if (global.access_token !== 'string') await this.getAuth()\n        const response = await axios({\n            method: 'POST',\n            url: global.resUrl,\n            data: Qs.stringify({\n                api: 'mark_user_activities_seen',\n                access_token: global.access_token,\n            }),\n        })\n        if (typeof response.data !== 'object') throw new Error('Response contains invalid data');\n        if (typeof response.data.error !== 'undefined') throw new Error(response.data.error.message);\n        return response.data;\n    }\n    async getLessonsPlan(params = {}) {\n        if (global.access_token !== 'string') await this.getAuth()\n        const dateFrom = DayJS(params.from).format('YYYY-MM-DD');\n        const dateTo = DayJS(params.to).format('YYYY-MM-DD');\n        const response = await axios({\n            method: 'POST',\n            url: global.resUrl,\n            data: Qs.stringify({\n                api: 'user_lessonsplan',\n                access_token: global.access_token,\n                date_from: dateFrom,\n                date_to: dateTo,\n                school_classes_id: params.classId,\n                school_user_id: params.userId,\n            }),\n        })\n        if (typeof response.data !== 'object') throw new Error('Response contains invalid data');\n        if (typeof response.data.error !== 'undefined') throw new Error(response.data.error.message);\n        return response.data;\n    }\n    async getUserActivities(params = {}) {\n        if (global.access_token !== 'string') await this.getAuth()\n        const dateFrom = DayJS(params.from).format('YYYY-MM-DD');\n        const dateTo = DayJS(params.to).format('YYYY-MM-DD');\n        const response = await axios({\n            method: 'POST',\n            url: global.resUrl,\n            data: Qs.stringify({\n                api: 'user_activities',\n                access_token: global.access_token,\n                date_from: dateFrom,\n                date_to: dateTo\n            }),\n        })\n        if (typeof response.data !== 'object') throw new Error('Response contains invalid data');\n        if (typeof response.data.error !== 'undefined') throw new Error(response.data.error.message);\n        return response.data;\n    }\n\n}\n\n\nmodule.exports = class MyKoob {\n    /**\n     * @param {Object} options\n     * @param {String} options.username \n     * @param {Number} options.password \n     */\n    constructor(options) {\n        this.username = options.username\n        this.password = options.password\n        this.api = new API(this.username, this.password);\n    }\n}"]}