{"version":3,"file":"js/chunk-common-0d4079aa.2aa726dd.js","mappings":"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","sources":["webpack://microsoft-academy/./src/services/alertMessage.js","webpack://microsoft-academy/./src/services/api.js","webpack://microsoft-academy/./src/services/assessments.service.js","webpack://microsoft-academy/./src/services/authentication.js","webpack://microsoft-academy/./src/services/authorization.js","webpack://microsoft-academy/./src/services/blog.service.js","webpack://microsoft-academy/./src/services/codebooks.service.js","webpack://microsoft-academy/./src/services/courses.service.js","webpack://microsoft-academy/./src/services/enrollments.service.js","webpack://microsoft-academy/./src/services/errors.js","webpack://microsoft-academy/./src/services/general.service.js","webpack://microsoft-academy/./src/services/lectures.service.js","webpack://microsoft-academy/./src/services/studyPrograms.service.js","webpack://microsoft-academy/./src/services/user.service.js"],"sourcesContent":["/**\n * Get alertMessages from localStorage\n * @return {object} - user data\n */\nfunction getAll() {\n let data = localStorage.getItem(\"alertMessages\")\n\n // if data exist parse json\n if (data) {\n data = JSON.parse(data)\n } else {\n data = {}\n }\n\n return data\n}\n\n/**\n * Add alertMessage to localStorage\n */\nfunction add(message) {\n let data = getAll()\n const id = Date.now()\n\n data[id] = message\n localStorage.setItem(\"alertMessages\", JSON.stringify(data))\n}\n\n/**\n * Remove alertMessage from localStorage\n */\nfunction remove(id) {\n let data = getAll()\n delete data[id]\n\n localStorage.setItem(\"alertMessages\", JSON.stringify(data))\n}\n\nexport const alertMessages = {\n getAll,\n add,\n remove,\n}","import {authenticationService} from \"@/services/authentication\";\nimport * as errors from \"@/services/errors\";\nimport axios from \"axios\";\n\nconst apiUrl = \"/api/\";\n\n/**\n * Make get request\n * @param {string} url - endPoint\n * @param {object|null} data - data\n * @param {object|null} params - params\n * @param {boolean} secured - use and check security headers\n * @return {axios} - axios data\n */\nfunction get(url, data = null, params = null, secured = true) {\n return request('get', url, secured, data, params)\n}\n\n/**\n * Make post request\n * @param {string} url - endPoint\n * @param {object|null} data - data\n * @param {object|null} params - params\n * @param {boolean} secured - use and check security headers\n * @return {axios} - axios data\n */\nfunction post(url, data = null, params = null, secured = true) {\n return request('post', url, secured, data, params)\n}\n\n/**\n * Make put request\n * @param {string} url - endPoint\n * @param {object|null} data - data\n * @param {object|null} params - params\n * @param {boolean} secured - use and check security headers\n * @return {axios} - axios data\n */\nfunction put(url, data = null, params = null, secured = true) {\n return request('put', url, secured, data, params)\n}\n\n/**\n * Make patch request\n * @param {string} url - endPoint\n * @param {object|null} data - data\n * @param {object|null} params - params\n * @param {boolean} secured - use and check security headers\n * @return {axios} - axios data\n */\nfunction patch(url, data = null, params = null, secured = true) {\n return request('patch', url, secured, data, params)\n}\n\n/**\n * Make delete request\n * @param {string} url - endPoint\n * @param {object|null} data - data\n * @param {object|null} params - params\n * @param {boolean} secured - use and check security headers\n * @return {axios} - axios data\n */\nfunction remove(url, data = null, params = null, secured = true) {\n return request('delete', url, secured, data, params)\n}\n\n/**\n * Make request request\n * @param {string} method - method\n * @param {string} url - endPoint\n * @param {boolean} secured - use and check security headers\n * @param {object|null} data - data\n * @param {object|null} params - params\n * @return {axios} - axios data\n */\nfunction request(method, url, secured, data = null, params = null) {\n let config;\n\n if (secured) {\n config = {\n headers: {\n Authorization: `Bearer ${authenticationService.getAxiosToken()}`\n },\n }\n }\n\n return axios({\n method,\n url: apiUrl + url,\n data,\n ...params,\n ...config\n }).catch(err => {\n // client received an error response (5xx, 4xx)\n if (err.response) {\n if (err.response.status === 400) {\n throw new errors.BadRequestError(err.response.message, err.response.data.detail ? err.response.data.detail: null)\n } else if (err.response.status === 401) {\n if (secured) {\n authenticationService.logout();\n } else {\n throw new errors.UnauthorizedError(err.response.message, err.response.data.detail ? err.response.data.detail: null)\n }\n } else if (err.response.status === 403) {\n if (secured) {\n authenticationService.logout();\n } else {\n throw new errors.ForbiddenError(err.response.message, err.response.data.detail ? err.response.data.detail: null)\n }\n } else if (err.response.status === 404) {\n throw new errors.NotFoundError(err.response.message)\n } else if (err.response.status === 422) {\n throw new errors.ValidationError(err.response.message, err.response.data.detail ? err.response.data.detail: null)\n } else if (err.response.status === 500) {\n throw new errors.InternalServerError(err.response.message)\n } else {\n // throw Error(err.response.data)\n throw Error(err.response.message)\n }\n } else if (err.request) {\n // client never received a response, or request never left\n throw Error(err.request.message)\n } else {\n // anything else\n throw Error(err.message)\n }\n })\n}\n\nexport {\n get,\n post,\n put,\n patch,\n remove,\n}","import {get, post} from \"@/services/api\";\n\n/**\n * Get assessments from api\n *\n * @return Axios\n */\nfunction getAll() {\n return get('assessments/', null);\n}\n\n/**\n * Get assessments from api\n *\n * @param {int} id - assessment id\n * @return Axios\n */\nfunction getById(id) {\n return get(`assessments/${id}`, null);\n}\n\n/**\n * Post assessment answers by api\n *\n * @param {number} id - assessment id\n * @param {object} data - json data\n * @return Axios\n */\nfunction submitAnswers(id, data) {\n return post(`assessments/answers`, {\n assessment_id: id,\n answers: data\n });\n}\n\nexport const assessmentsService = {\n getAll,\n getById,\n submitAnswers\n};","import {isApiResponseValid} from \"@/helpers/helpers\";\nimport {post, put} from \"@/services/api\";\nimport {AppError} from \"@/services/errors\";\nimport store from \"@/store\";\n\n/**\n * Make api call to user login\n * @param {string} username - username\n * @param {string} password - password\n */\nasync function login(username, password) {\n const params = new URLSearchParams();\n params.append('username', username);\n params.append('password', password);\n\n // api call\n const response = await post('token', params, {}, false)\n\n if (!isApiResponseValid(response) || !response.data.access_token) {\n throw AppError;\n }\n\n // save to localStorage\n setAxiosToken(response.data.access_token)\n\n // get user data\n await store.dispatch('user/getUser', false)\n}\n\n/**\n * Make api call to get new password email\n * @param {string} email - email\n * @return {json|boolean} - return true on success or json with errors\n */\nasync function forgotPassword(email) {\n await put('forgot-password', {email}, false)\n}\n\n/**\n * Make api call to change password\n * @param {string} token - token\n * @param {string} new_password - new password\n * @return {json|boolean} - return true on success or json with errors\n */\nasync function resetPassword(token, new_password) {\n await post('reset-password', {token, new_password}, false)\n}\n\n/**\n * Set axios authorization header\n * @param {string} token - access token\n */\nfunction setAxiosToken(token) {\n localStorage.setItem('token', token)\n}\n\n/**\n * Get auth token from local storage\n * @return {string} - access token\n */\nfunction getAxiosToken() {\n return localStorage.getItem(\"token\");\n}\n\n/**\n * Remove token from local storage - user logout and reload page or redirect to login page\n */\nfunction logout() {\n localStorage.removeItem('token')\n if (['index', '404', 'about', 'privacyPolicy', 'personalData'].includes(location.page)) {\n location.reload();\n } else {\n location.href = '/login'\n }\n}\n\nexport const authenticationService = {\n getAxiosToken,\n forgotPassword,\n resetPassword,\n login,\n logout,\n};","import store from \"@/store\";\n\n/**\n * Check if user has access to current page\n * @param {string} page - current page\n */\nfunction checkAccess(page) {\n const loggedIn = store.getters['user/loggedIn'];\n location.page = page;\n let redirect = '';\n \n if (page === 'admin' || page === 'admin-trainings' || page === 'admin-courses') {\n const userRole = store.getters['user/userRole'];\n\n if (userRole !== 14 && userRole !== 13) {\n redirect = '/'\n }\n }\n // redirect out of auth pages is user is logged\n else if (page === 'login' || page === 'reset' || page === 'registration' || page === 'newPassword') {\n if (loggedIn) {\n redirect = '/courses'\n }\n } else if (page === 'index' || page === 'about' || page === 'privacyPolicy' || page === 'competitionRules' || page === 'personalData' || page === '404' || page === 'articleList' || page === 'articleDetail' || page === 'ms365' || page === 'powerAutomate' || page === 'msAzure' || page === 'powerBi' || page === 'cyberSecurity' || page === 'students' || page === 'mentions' || page === 'studyProgram' || page === 'digistart' || page === 'lectures' || page === 'lectureDetail') {\n // do nothing on index\n } else {\n // redirect out pages is user is not logged\n if (!loggedIn) {\n redirect = '/login'\n }\n }\n\n if (redirect) {\n window.location.href = redirect\n } else {\n store.dispatch('page/setPage', page)\n store.dispatch('page/setCurrentPage', getCurrentPage(page))\n }\n}\n\n/**\n * Save page id from html attr to store\n * Add id to page name\n *\n * @param {String} page - page name\n * @return {string} - page name with id\n * */\nfunction getCurrentPage(page) {\n let pageId = null;\n let currentPage = page;\n const appMainElement = document.querySelector('#app');\n\n // Change page name for dynamic pages to show active page in navigations\n if (page === 'video') {\n pageId = appMainElement.dataset.course_id;\n } else if (page === 'assessment') {\n pageId = appMainElement.dataset.assessment_id;\n } else if (page === 'articleDetail') {\n pageId = appMainElement.dataset.article_id;\n } else if (page === 'studyProgram') {\n pageId = appMainElement.dataset.study_program_id;\n }\n\n // convert to integer\n if (pageId) {\n pageId = parseInt(pageId)\n }\n\n // save page id to store\n if (pageId) {\n store.dispatch('page/setPageId', pageId)\n currentPage += pageId;\n }\n\n return currentPage;\n}\n\n\nexport const authorizationService = {\n checkAccess,\n};","import {get} from \"@/services/api\";\n\n/**\n * Get blog articles from api\n * @return Axios\n */\nfunction getAll() {\n return get('blog/');\n}\n\n/**\n * Get article from api\n * @param {int} id - article id\n * @return Axios\n */\nfunction getArticle(id) {\n return get(`blog/${id}`, null);\n}\n\nexport const blogService = {\n getAll,\n getArticle\n};","import {get, post} from \"@/services/api\";\nimport store from \"@/store\";\nimport _ from \"lodash\";\n\n/**\n * Get data form api\n * @param {string} endpoint - endpoint\n * @return {Object} - codebooks\n */\nasync function getDataFromApi(endpoint) {\n try {\n const response = await get(endpoint, {}, {\n params: {\n language: 5,\n academy_id: 1\n }\n }, false);\n\n return response.data;\n } catch (err) {\n store.dispatch('codebooks/addFlashMessage', {\"message\": 'Chyba při načítání dat, zkuste obnovit stránku.', 'type': 'warning'})\n }\n}\n\n/**\n * Get version from api\n * @return {Object} - codebooks\n */\nasync function getVersion() {\n try {\n const response = await get('codebooks/version', null, null, false);\n\n return response.data;\n } catch (err) {\n store.dispatch('codebooks/addFlashMessage', {\"message\": 'Chyba při načítání dat, zkuste obnovit stránku.', 'type': 'warning'})\n }\n}\n\n/**\n * Get data from localStorage\n * @param {string} endpoint - endpoint\n * @return {Object} - codebooks\n */\nfunction getDataFromLocalStorage(endpoint) {\n // get from localStorage\n let data = localStorage.getItem(endpoint);\n\n // if exist parse\n if (data) {\n data = JSON.parse(data);\n }\n\n store.dispatch('codebooks/setAllCodebooks', {endpoint, data});\n return data;\n}\n\n/**\n * Save data to localStorage\n * @param {string} endpoint - endpoint\n * @param {Object} data - data\n */\nfunction saveDataToLocalStorage(endpoint, data) {\n localStorage.setItem(endpoint, JSON.stringify(data));\n store.dispatch('codebooks/setAllCodebooks', {endpoint, data});\n}\n\n/**\n * Get data codebooks and translations data from api to localstorage, check version\n */\nasync function getAllCodebooks() {\n // get local version\n const versionLocal = localStorage.getItem('codebooksVersion')\n\n // get api version\n const versionApi = await getVersion();\n\n // get version match\n const matchVersions = versionApi === versionLocal;\n\n // foreach endpoints and check version\n for (const endpoint of ['codebooks', 'translations']) {\n let dataApi;\n\n // check if version matches\n if (!matchVersions) {\n\n // load from api\n dataApi = await getDataFromApi(endpoint)\n\n // update localstorage\n saveDataToLocalStorage(endpoint, dataApi)\n } else {\n try {\n // try to get data from localstorage\n getDataFromLocalStorage(endpoint)\n } catch (err) {\n // load from api\n dataApi = await getDataFromApi(endpoint)\n\n // update localstorage\n saveDataToLocalStorage(endpoint, dataApi)\n }\n }\n }\n\n // update local version\n if (!matchVersions) {\n localStorage.setItem('codebooksVersion', versionApi);\n }\n}\n\n/**\n * Get codebooks values\n * @param {object} data - data\n * @param {string} key - codebook key\n * @return {object} - codebooks values\n */\nfunction getCodeBookByKey(data, key) {\n let out = {};\n\n if (_.has(data, key)) {\n out = data[key];\n }\n\n return out;\n}\n\n/**\n * Get codebook value\n * @param {object} data - data\n * @param {string} key - codebook key\n * @param {string} value - codebook value\n * @return {string} - codebook value\n */\nfunction getCodeBookByKeyAndValue(data, key, value) {\n let out = '';\n\n data = getCodeBookByKey(data, key);\n\n if (_.has(data, value)) {\n out = data[value]\n }\n return out;\n}\n\n/**\n * Get translation by placeholder\n * @param {object} data - data\n * @param {string} placeholder - placeholder\n * @param {object|null} attrs - object with dynamic data {number: 8}\n * @example\n * // default\n * translation('string')\n * @example\n * // with attrs\n * translation('...string %number% string...', {number: 8})\n * @return {string} - translation\n */\nfunction translation(data, placeholder, attrs = null) {\n let out = '';\n\n // check if key exist in array of translations\n if (_.has(data, placeholder)) {\n out = data[placeholder];\n\n if (attrs) {\n for (const key in attrs) {\n out = _.replace(out, `%${key}%`, attrs[key])\n }\n }\n }\n\n return out;\n}\n\n/**\n * Add translation to api\n * @param {string} key - key of translation\n * @param {string} text - text of translation\n * @param {string} language - locale id\n * @return {object} - success message\n */\nfunction createTranslation(key, text, language) {\n return post('users/codebooks');\n}\n\nexport const codebooksService = {\n getAllCodebooks,\n getCodeBookByKey,\n translation,\n getCodeBookByKeyAndValue,\n createTranslation,\n};","import {get, patch, remove, post} from \"@/services/api\";\nimport axios from 'axios';\nimport {authenticationService} from \"@/services/authentication\";\n\n/**\n * Get courses from api\n * @param {int|null} filter_difficulty - filter by difficulty [1-3]\n * @return Axios\n */\nfunction getAll(filter_difficulty = 0) {\n let params;\n\n if (filter_difficulty > 0) {\n params = {\n params: {\n filter_difficulty\n }\n }\n }\n\n return get('courses/', {}, params);\n}\n\n/**\n * Get courses from api\n * @return Axios\n */\nfunction getAllAdmin() {\n return get('courses/admin', {});\n}\n\n/**\n * Get course from api\n * @param {int} id - course id\n * @return Axios\n */\nfunction getCourse(id) {\n return get(`courses/${id}`, null);\n}\n\nasync function courseEnrollementData(id_order, academy_id, url, name, description, description_short, image, difficulty, language, is_active=true) {\n return post('courses/create-from-admin', {\n id_order,\n academy_id,\n url,\n name,\n description, \n description_short, \n image,\n difficulty,\n language,\n is_active\n }, false)\n}\n\n\nasync function lectureEnrollementData(name, description, description_short, type=1, language=5, duration_seconds=0, course_id, section_id, is_active, id_order) {\n return post('courses/lecture', {\n name, \n description, \n description_short, \n type, \n language, \n duration_seconds, \n course_id, \n section_id, \n is_active, \n id_order\n }, false)\n}\n\nasync function sectionCreateData(course_id, name, id_order=10) {\n return post(`courses/section`, {\n name, \n id_order,\n course_id\n }, false)\n}\n\nfunction uploadVideo(formData, onUploadProgress) {\n return axios.post(`/api/videos/lecture/${formData.get('lectureId')}`, formData, {\n headers: {\n 'Authorization': `Bearer ${authenticationService.getAxiosToken()}`,\n 'Content-Type': 'multipart/form-data',\n },\n // Přidej onUploadProgress do konfigurace\n onUploadProgress: (progressEvent) => {\n const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);\n if (onUploadProgress) {\n onUploadProgress(percentCompleted);\n }\n }\n });\n }\n\nconst uploadCourseImage = (formData) => {\n return post(`courses/image/${formData.get('courseId')}`, formData, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n });\n };\n\n\n\nasync function updateCourse(id, id_order, academy_id, url, name, description, description_short, image, difficulty, language, is_active) {\n let data = {\n id,\n id_order,\n academy_id,\n url,\n name,\n description,\n description_short,\n image,\n difficulty,\n language,\n is_active\n }\n \n return patch(`courses/${id}`, data, false)\n}\n\n\nasync function updateCourseSection(id, name, id_order, course_id) {\n let data = {\n id,\n name,\n id_order,\n course_id\n }\n \n return patch(`courses/section/${id}`, data, false)\n}\n\n\nasync function updateLecture(id, name, id_order, description, description_short, is_active) {\n let data = {\n id,\n name,\n id_order,\n description,\n description_short,\n is_active\n }\n \n return patch(`courses/lecture/${id}`, data, false)\n}\n\n/**\n * Get all users from api\n * @return {list} - user data\n */\nasync function getCourseSections(courseId) {\n try {\n const response = await get(`courses/${courseId}/sections/admin`);\n\n return response;\n } catch (err) {\n if (err instanceof AppError && err.data) {\n store.dispatch('app/addFlashMessage', err.data)\n } else {\n throw err;\n }\n }\n}\n\n/**\n * Get all users from api\n * @return {list} - user data\n */\nasync function getCourseSectionLectures(sectionId) {\n try {\n const response = await get(`courses/lectures/${sectionId}/admin`);\n return response;\n } catch (err) {\n if (err instanceof AppError && err.data) {\n store.dispatch('app/addFlashMessage', err.data)\n } else {\n throw err;\n }\n }\n}\n\nasync function deleteCourse(id) {\n let data = {\n id \n }\n\n return remove(`courses/${id}`, data, false)\n}\n\n\nasync function deleteCourseSection(id) {\n let data = {\n id \n }\n\n return remove(`courses/section/${id}`, data, false)\n}\n\n\nasync function deleteLecture(id) {\n let data = {\n id \n }\n\n return remove(`courses/lecture/${id}`, data, false)\n}\n\n\nexport const coursesService = {\n getAll,\n getAllAdmin,\n getCourse,\n courseEnrollementData,\n lectureEnrollementData,\n sectionCreateData,\n updateCourse,\n updateCourseSection,\n updateLecture,\n uploadVideo,\n uploadCourseImage,\n getCourseSections,\n getCourseSectionLectures,\n deleteCourse,\n deleteCourseSection,\n deleteLecture\n};","import {get, patch, post, remove} from \"@/services/api\";\n\n/**\n * Send analytical data about lecture by API\n * @param {object} data - analyticalData\n * @return Axios\n */\nfunction sendAnalyticalData(data) {\n return patch(`enrollments/me/lecture`, data);\n}\n\n/**\n * Get courses enrolled by user\n * @return Axios\n */\nfunction getUserEnrollments() {\n return get(`enrollments/me/courses`);\n}\n\n/**\n * Get badges by user\n * @return Axios\n */\nfunction getUserBadges() {\n return get(`enrollments/me/badges`);\n}\n\n/**\n * Enroll user to course\n * @param {string} course_id - id of course\n * @param {string} user_id - id of user\n * @return Axios\n */\nfunction enrollCourse(course_id, user_id) {\n return post(`enrollments/course`, {course_id, user_id});\n}\n\n/**\n * Get lecture data by ID from API\n * @param {int} id - lecture id\n * @return Axios\n */\nfunction getLectureData(id) {\n return get(`enrollments/me/lectures/${id}`, null);\n}\n\n/**\n * Enroll user to lecture by API\n * @param {object} data - json data\n * @return Axios\n */\nfunction lectureEnrollment(data) {\n return post(`enrollments/me/lecture/`, data);\n}\n\n/**\n * Complete lecture by API\n * @param {object} data - json data\n * @return Axios\n */\nfunction completeLecture(data) {\n return post(`enrollments/me/lecture/complete`, data);\n}\n\n/**\n * Incomplete lecture by API\n * @param {int} id - lecture id\n * @return Axios\n */\nfunction incompleteLecture(id) {\n return remove(`enrollments/me/lecture/${id}`);\n}\n\n/**\n * Delete course enrollment by API\n * @param {int} id - course id\n * @return Axios\n */\nfunction deleteCourseEnrollment(id) {\n return remove(`enrollments/me/courses/${id}`);\n}\n\nexport const enrollmentsService = {\n getUserEnrollments,\n enrollCourse,\n sendAnalyticalData,\n getLectureData,\n lectureEnrollment,\n completeLecture,\n incompleteLecture,\n deleteCourseEnrollment,\n getUserBadges\n};","// 400\nexport class BadRequestError extends Error {\n constructor(message, data) {\n super(message);\n this.name = \"BadRequestError\";\n this.data = data;\n }\n}\n\n// 401\nexport class UnauthorizedError extends Error {\n constructor(message, data) {\n super(message);\n this.name = \"UnauthorizedError\";\n this.data = data;\n }\n}\n\n// 403\nexport class ForbiddenError extends Error {\n constructor(message, data) {\n super(message);\n this.name = \"PermissionDeniedError\";\n this.data = data;\n }\n}\n\n// 404\nexport class NotFoundError extends Error {\n constructor(message) {\n super(message);\n this.name = \"NotFoundError\";\n }\n}\n\n// 408\nexport class RequestTimeout extends Error {\n constructor(message) {\n super(message);\n this.name = \"RequestTimeout\";\n }\n}\n\n// 422\nexport class ValidationError extends Error {\n constructor(message, data) {\n super(message);\n this.name = \"ValidationError\";\n this.data = data;\n }\n}\n\n// 500\nexport class InternalServerError extends Error {\n constructor(message) {\n super(message);\n this.name = \"InternalServerError\";\n }\n}\n\n// Other\nexport class AppError extends Error {\n constructor(message, data) {\n super(message);\n this.name = \"AppError\";\n this.data = data;\n }\n}","import {post} from \"@/services/api\";\n\n/**\n * Make api call to send contact form\n * @param {string} subject - firstname\n * @param {string} body - lastname\n * @return {json} - return response from api\n */\nasync function sendContactForm(subject, body) {\n return post('contact-form', {\n subject,\n body,\n })\n}\n\n/**\n * Make api call to send consult form\n * @param {string} subject - firstname\n * @param {string} body - lastname\n * @param {string} email - lastname\n * @return {json} - return response from api\n */\nasync function sendConsultForm(subject, body, email) {\n return post('consult-form', {\n subject,\n body,\n email,\n })\n}\n\nexport const generalService = {\n sendContactForm,\n sendConsultForm,\n};","import {get, post} from \"@/services/api\";\n\n\n/**\n * Get trainings from api\n * @return Axios\n */\nfunction getAllUpcoming(page, training_type = 0, ordering = 0) {\n let params;\n \n params = {\n params: {\n page\n }\n }\n\n if (training_type > 0) {\n params['params']['training_type'] = training_type;\n }\n\n if (ordering > 0) {\n params['params']['ordering'] = ordering;\n }\n\n const upcomingGet = get('trainings', {}, params);\n return upcomingGet;\n}\n\n/**\n * Get trainings from api\n * @return Axios\n */\nfunction getAllUpcomingAdmin(page, training_type = 0, ordering = 0) {\n let params;\n \n params = {\n params: {\n page\n }\n }\n\n if (training_type > 0) {\n params['params']['training_type'] = training_type;\n }\n\n if (ordering > 0) {\n params['params']['ordering'] = ordering;\n }\n\n const upcomingGet = get('trainings/admin', {}, params);\n return upcomingGet;\n}\n\nfunction getAllPast(page) {\n let params;\n \n params = {\n params: {\n page\n }\n }\n\n return get('trainings/past', {}, params);\n}\n\nfunction getTraining(id) {\n const trainingData = get(`trainings/${id}`, null);\n return trainingData;\n}\n\n/**\n * Make api call to user login\n * @param {number} training_id - training id\n * @param {string} firstname - firstname\n * @param {string} lastname - lastname\n * @param {string} email - email\n * @param {string} phone - phone\n * @param {boolean} signup \n * @return {json} - return response from api\n */\nasync function trainingEnrollmentData(training_id, firstname, lastname, email, phone, signup, comment, comment_up, motivation, highest_edu, field, language_edu, mpsv_url, origin=1, interest_state=7, mpsv_code, reg_number_npo, mpsv_number, candidates_address) {\n return post('trainings/enroll', {\n training_id,\n firstname,\n lastname,\n email,\n phone,\n signup,\n comment,\n comment_up,\n motivation,\n highest_edu,\n field,\n language_edu,\n mpsv_url,\n origin,\n interest_state,\n mpsv_code,\n reg_number_npo, \n mpsv_number, \n candidates_address\n }, false)\n}\n\n\n/**\n * Make api call to user login\n * @param {number} training_id - training id\n * @param {string} firstname - firstname\n * @param {string} lastname - lastname\n * @param {string} email - email\n * @param {string} phone - phone\n * @param {boolean} signup \n * @return {json} - return response from api\n */\nasync function trainingEnrollmentDataAdmin(training_id, firstname, lastname, email, phone, signup, comment, comment_up, motivation, highest_edu, field, language_edu, mpsv_url, origin, interest_state, mpsv_code, reg_number_npo, mpsv_number, candidates_address) {\n return post('trainings/enroll-from-admin', {\n training_id,\n firstname,\n lastname,\n email,\n phone,\n signup,\n comment,\n comment_up,\n motivation,\n highest_edu,\n field,\n language_edu,\n mpsv_url,\n origin,\n interest_state,\n mpsv_code, \n reg_number_npo, \n mpsv_number, \n candidates_address\n }, false)\n}\n\n\nexport const lectureService = {\n getAllUpcoming,\n getAllUpcomingAdmin,\n getAllPast,\n getTraining,\n trainingEnrollmentData,\n trainingEnrollmentDataAdmin\n};","import {get} from \"@/services/api\";\n\n/**\n * Get all programs from api\n *\n * @return Axios\n */\nfunction getAll() {\n return get('study_programmes/');\n}\n\n/**\n * Get all programs with just base data\n *\n * @return Axios\n */\nfunction getAllSimple() {\n return get('study_programmes/menu');\n}\n\n/**\n * Get program from api by id\n *\n * @param {int} id - program id\n * @return Axios\n */\nfunction getById(id) {\n return get(`study_programmes/${id}`, null);\n}\n\n/**\n * Get programs for logged user\n *\n * @return Axios\n */\nfunction getForUser() {\n return get(`study_programmes/user`, null);\n}\n\nexport const studyProgramsService = {\n getAll,\n getAllSimple,\n getById,\n getForUser,\n};","import {isApiResponseValid} from \"@/helpers/helpers\";\nimport {get, patch, post, remove} from \"@/services/api\";\nimport {AppError} from \"@/services/errors\";\nimport store from \"@/store\";\n\n/**\n * Get current user data from localStorage or from api\n * @param {boolean} getFromStorage - if can get data from local storage\n * @return {object} - user data\n */\nasync function getCurrentUser(getFromStorage = true) {\n try {\n const response = await get('users/me');\n\n // check response\n if (!isApiResponseValid(response)) {\n throw new AppError('Error loading data', {\"message\": 'Chyba při načítání uživatele, zkuste obnovit stránku.', 'type': 'warning'})\n }\n // update data\n return response.data;\n } catch (err) {\n if (err instanceof AppError && err.data) {\n store.dispatch('app/addFlashMessage', err.data)\n } else {\n throw err;\n }\n }\n}\n\n/**\n * Get all users from api\n * @return {list} - user data\n */\nasync function getAllUsers() {\n try {\n const response = await get('users/');\n\n // check response\n if (!isApiResponseValid(response)) {\n throw new AppError('Error loading data', {\"message\": 'Chyba při načítání uživatelů, zkuste obnovit stránku.', 'type': 'warning'})\n }\n\n // update data\n return response;\n } catch (err) {\n if (err instanceof AppError && err.data) {\n store.dispatch('app/addFlashMessage', err.data)\n } else {\n throw err;\n }\n }\n}\n\n/**\n * Get all users from api\n * @return {list} - user data\n */\nasync function getTrainingUsers(training_id) {\n try {\n const response = await get(`users/training/${training_id}`);\n\n // check response\n if (!isApiResponseValid(response)) {\n throw new AppError('Error loading data', {\"message\": 'Chyba při načítání uživatelů, zkuste obnovit stránku.', 'type': 'warning'})\n }\n\n // update data\n return response;\n } catch (err) {\n if (err instanceof AppError && err.data) {\n store.dispatch('app/addFlashMessage', err.data)\n } else {\n throw err;\n }\n }\n}\n\n/**\n * Make api call to user login\n * @param {string} firstname - firstname\n * @param {string} lastname - lastname\n * @param {string} email - email\n * @param {string} password - password\n * @param {string} phone - phone\n * @param {boolean} newsletter_subscribed - newsletter\n * @param {boolean} university_student - student\n * @param {string} source - zdroj uživatele (např. digiskills)\n * @return {json} - return response from api\n */\nasync function createUser(firstname, lastname, email, password, phone = '', newsletter_subscribed = false, university_student = false, source= null) {\n return post('users', {\n firstname,\n lastname,\n phone,\n email,\n password,\n newsletter_subscribed,\n university_student,\n language: 5,\n source\n }, false)\n}\n\n/**\n * Make api call to update user data\n * @param {number} userId - userId\n * @param {string} firstname - firstname\n * @param {string} lastname - lastname\n * @param {string} email - email\n * @param {string} phone - phone\n * @param {boolean} newsletter_subscribed - newsletter\n * @param {boolean} university_student - student\n * @param {boolean} contacted - zda byl uživatel kontaktován\n * @param {date} contacted_date - kdy byl uživatel kontaktován\n * @return {json} - return response from api\n */\nasync function updateUser(userId, firstname, lastname, email, phone = '', newsletter_subscribed = false, university_student = false, contacted = null, contacted_date = null) {\n let data = {\n firstname,\n lastname,\n phone,\n email,\n newsletter_subscribed,\n university_student,\n language: 5\n }\n if (contacted !== null)\n data[\"contacted\"] = contacted\n if (contacted_date !== null)\n data[\"contacted_date\"] = contacted_date\n return patch(`users/${userId}`, data, false)\n}\n\n/**\n * Make api call to update user data\n * @param {number} id - Id\n * @param {number} training_id - userId\n * @param {number} user_id - userId\n * @param {string} firstname - firstname\n * @param {string} lastname - lastname\n * @param {string} email - email\n * @param {string} phone - phone\n * @param {boolean} mpsv_active\n * @param {string} comment - comment\n * @param {string} comment_up - comment_up\n * @param {string} motivation - motivation\n * @param {string} highest_edu - highest_edu\n * @param {string} field - field\n * @param {string} language_edu - language_edu\n * @param {string} mpsv_url - mpsv_url\n * @param {number} origin - origin\n * @param {string} interest_state - interest_state\n * @param {string} mpsv_code - mpsv_code\n * @param {string} reg_number_npo - reg_number_npo\n * @param {string} mpsv_number - mpsv_number\n * @param {string} candidates_address - candidates_address\n * @return {json} - return response from api\n */\nasync function updateTrainingUser(id, training_id, user_id = null, firstname, lastname, email, phone = '', mpsv_active, comment, comment_up, motivation, highest_edu, field, language_edu, mpsv_url, origin, interest_state, mpsv_code, reg_number_npo, mpsv_number, candidates_address) {\n let data = {\n id,\n training_id,\n user_id,\n firstname,\n lastname,\n email,\n phone,\n mpsv_active,\n comment,\n comment_up,\n motivation,\n highest_edu,\n field,\n language_edu,\n mpsv_url,\n origin,\n interest_state,\n mpsv_code, \n reg_number_npo, \n mpsv_number, \n candidates_address\n }\n \n return patch(`users/training/${id}`, data, false)\n}\n\n/**\n * Make api call to update user data\n * @param {number} id - Id\n * @return {json} - return response from api\n */\n\nasync function deleteTrainingUser(id) {\n let data = {\n id \n }\n\n return remove(`users/training/${id}`, data, false)\n}\n\n\n\nexport const userService = {\n getCurrentUser,\n createUser,\n updateUser,\n updateTrainingUser,\n deleteTrainingUser,\n getAllUsers,\n getTrainingUsers\n};"],"names":["getAll","data","localStorage","getItem","JSON","parse","add","message","id","Date","now","setItem","stringify","remove","alertMessages","apiUrl","get","url","params","secured","request","post","put","patch","method","config","headers","Authorization","authenticationService","axios","catch","err","response","Error","status","errors","detail","getById","submitAnswers","assessment_id","answers","assessmentsService","async","login","username","password","URLSearchParams","append","isApiResponseValid","access_token","AppError","setAxiosToken","store","forgotPassword","email","resetPassword","token","new_password","getAxiosToken","logout","removeItem","includes","location","page","reload","href","checkAccess","loggedIn","redirect","userRole","window","getCurrentPage","pageId","currentPage","appMainElement","document","querySelector","dataset","course_id","article_id","study_program_id","parseInt","authorizationService","getArticle","blogService","getDataFromApi","endpoint","language","academy_id","getVersion","getDataFromLocalStorage","saveDataToLocalStorage","getAllCodebooks","versionLocal","versionApi","matchVersions","dataApi","getCodeBookByKey","key","out","_","getCodeBookByKeyAndValue","value","translation","placeholder","attrs","createTranslation","text","codebooksService","filter_difficulty","getAllAdmin","getCourse","courseEnrollementData","id_order","name","description","description_short","image","difficulty","is_active","lectureEnrollementData","type","duration_seconds","section_id","sectionCreateData","uploadVideo","formData","onUploadProgress","progressEvent","percentCompleted","Math","round","loaded","total","uploadCourseImage","updateCourse","updateCourseSection","updateLecture","getCourseSections","courseId","dispatch","getCourseSectionLectures","sectionId","deleteCourse","deleteCourseSection","deleteLecture","coursesService","sendAnalyticalData","getUserEnrollments","getUserBadges","enrollCourse","user_id","getLectureData","lectureEnrollment","completeLecture","incompleteLecture","deleteCourseEnrollment","enrollmentsService","BadRequestError","constructor","super","this","UnauthorizedError","ForbiddenError","NotFoundError","RequestTimeout","ValidationError","InternalServerError","sendContactForm","subject","body","sendConsultForm","generalService","getAllUpcoming","training_type","ordering","upcomingGet","getAllUpcomingAdmin","getAllPast","getTraining","trainingData","trainingEnrollmentData","training_id","firstname","lastname","phone","signup","comment","comment_up","motivation","highest_edu","field","language_edu","mpsv_url","origin","interest_state","mpsv_code","reg_number_npo","mpsv_number","candidates_address","trainingEnrollmentDataAdmin","lectureService","getAllSimple","getForUser","studyProgramsService","getCurrentUser","getFromStorage","getAllUsers","getTrainingUsers","createUser","newsletter_subscribed","university_student","source","updateUser","userId","contacted","contacted_date","updateTrainingUser","mpsv_active","deleteTrainingUser","userService"],"sourceRoot":""}