{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/helpers/backend/auth-header.js","webpack:///./src/helpers/backend/user.service.js","webpack:///./src/state/modules/auth.js","webpack:///./src/helpers/backend/rafc.service.js","webpack:///./src/state/modules/rafc.js","webpack:///./src/state/modules/notification.js","webpack:///./src/helpers/backend/mtcevents.service.js","webpack:///./src/state/modules/mtcevents.js","webpack:///./src/helpers/backend/marques.service.js","webpack:///./src/state/modules/marques.js","webpack:///./src/helpers/backend/home.service.js","webpack:///./src/state/modules/home.js","webpack:///./src/helpers/backend/states.service.js","webpack:///./src/state/modules/states.js","webpack:///./src/helpers/backend/regions.service.js","webpack:///./src/state/modules/regions.js","webpack:///./src/helpers/backend/alerts.service.js","webpack:///./src/state/modules/alerts.js","webpack:///./src/helpers/backend/centres.service.js","webpack:///./src/state/modules/centres.js","webpack:///./src/locales sync [A-Za-z0-9-_,\\s]+\\.json$/","webpack:///./src/helpers/backend/stationshcplus.service.js","webpack:///./src/state/modules/stationshcplus.js","webpack:///./src/state/helpers.js","webpack:///./src/App.vue","webpack:///src/App.vue","webpack:///./src/App.vue?03b3","webpack:///./src/App.vue?315a","webpack:///./src/main.js","webpack:///./src/state/modules/language.js","webpack:///./src/helpers/backend/consolidated.service.js","webpack:///./src/state/modules/consolidated.js","webpack:///./src/helpers/backend/axios.js","webpack:///./src/state/modules/index.js","webpack:///./src/state/store.js","webpack:///./src/i18n.js","webpack:///./src/helpers/backend/logs.service.js","webpack:///./src/state/modules/logs.js","webpack:///./src/helpers/backend/causes.service.js","webpack:///./src/state/modules/causes.js","webpack:///./src/router/routes.js","webpack:///./src/router/index.js","webpack:///./src/helpers/backend/planifications.service.js","webpack:///./src/state/modules/planifications.js","webpack:///./src/helpers/backend/offlinealerts.service.js","webpack:///./src/state/modules/offlinealerts.js","webpack:///./src/helpers/backend/users.service.js","webpack:///./src/state/modules/users.js","webpack:///./src/helpers/backend/vaccintypes.service.js","webpack:///./src/state/modules/vaccintypes.js","webpack:///./src/helpers/backend/interventions.service.js","webpack:///./src/state/modules/interventions.js","webpack:///./src/state/modules/layout.js","webpack:///./src/helpers/backend/provinces.service.js","webpack:///./src/state/modules/provinces.js","webpack:///./src/helpers/backend/actions.service.js","webpack:///./src/state/modules/actions.js","webpack:///index|\\.unit\\.).)*\\.js$","webpack:///./src/helpers/backend/intervmobile.service.js","webpack:///./src/state/modules/intervmobile.js","webpack:///./src/helpers/backend/operations.service.js","webpack:///./src/state/modules/operations.js","webpack:///./src/helpers/backend/devices.service.js","webpack:///./src/state/modules/devices.js","webpack:///./src/utils/env.js","webpack:///./src/helpers/backend/configsalerts.service.js","webpack:///./src/state/modules/configsalerts.js","webpack:///./src/helpers/backend/interventionoperations.service.js","webpack:///./src/state/modules/interventionoperations.js","webpack:///./src/helpers/backend/materials.service.js","webpack:///./src/state/modules/materials.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","authHeader","user","JSON","parse","localStorage","getItem","token","accessToken","userService","login","logout","resetPassword","changePassword","register","getAll","async","email","password","res","axios","post","env","base_url","usr","tokens","access","refreshToken","refresh","setItem","stringify","response","status","resetToken","requestOptions","method","headers","fetch","handleResponse","text","ok","location","reload","statusText","state","currentUser","getters","loggedIn","actions","changeTokens","commit","dispatch","router","root","catch","log","registeruser","mutations","SET_NEW_TOKENS","SET_CURRENT_USER","newValue","loginRequest","loggingIn","loginSuccess","loggeduser","loginFailure","registerRequest","registering","registerSuccess","registerFailure","rafcService","getRafc","manageRafc","params","API","loaderDashboard","errors","messages","rafc","rafcNouaceur","manageStatus","getRafcNouaceur","getRafcBy","manageRAFC","clearRafc","RAFC_SUCCESS","RAFC_NOUACEUR_SUCCESS","CLEAR_RAFC_SUCCESS","MANAGE_SUCCESS","success","clear","mtcEventsService","addMtcEvent","updateMtcEvent","getMtcEvents","delMtcEvent","getCountByMonthRegion","getCountByMonths","getCountByCurrentMonth","patch","mtcEventId","region","province","nbPrev","nbCorr","nbRegl","id","delete","mtcEvents","countByMonths","countByMonthRegion","countByCurrentMonth","mtcEvent","getMtcEventsBy","getCountByMonthRegionBy","count","getCountByMonthsBy","getCountByCurrentMonthBy","clearMtcEvents","GET_MTCEVENTS_SUCCESS","ADD_MTCEVENT_SUCCESS","results","UPDATE_MTCEVENT_SUCCESS","map","obj","DEL_MTCEVENT_SUCCESS","filter","GET_COUNTREGIONMONTH_SUCCESS","GET_COUNTMONTHS_SUCCESS","GET_COUNTCURRENTMONTH_SUCCESS","CLEAR_MTCEVENTS","marquesService","addMarque","updateMarque","getMarques","delMarque","marqueId","marques","marque","getMarquesBy","clearMarques","GET_MARQUES_SUCCESS","ADD_MARQUE_SUCCESS","UPDATE_MARQUE_SUCCESS","DEL_MARQUE_SUCCESS","CLEAR_MARQUES","homeService","postInfos","getData","dataSuccess","events","statesService","addState","updateState","getStates","delState","stateId","isClosed","states","getStatesBy","clearStates","GET_STATES_SUCCESS","ADD_STATE_SUCCESS","UPDATE_STATE_SUCCESS","DEL_STATE_SUCCESS","CLEAR_STATES","regionsService","getRegions","addRegion","updateRegion","delRegion","regionId","regions","getRegionsBy","clearRegions","REGIONS_SUCCESS","ADD_REGION_SUCCESS","UPDATE_REGION_SUCCESS","DEL_REGION_SUCCESS","CLEAR_REGIONS_SUCCESS","alertsService","getAlerts","getNumberByType","aquitAlert","aquitAlerts","exportXLS","countByMarqueRegion","countByMarque","from","to","ref","action","operation","cause","savedDoses","hours","dateAquit","createdAt","note","devices","responseType","alerts","subAlerts","totalType","causes","export","getSubAlerts","getCountByMarqueRegion","getStatsByMarque","getAlertsBy","getNumberByTypeBy","getSubAlertsBy","device","closed","aquitPartOfAlerts","serials","exportXLSAlerts","url","URL","createObjectURL","Blob","link","serial","body","click","clearAlerts","getCountByMarqueRegionBy","getStatsByMarqueBy","ALERTS_SUCCESS","SUB_ALERTS_SUCCESS","NUMBER_SUCCESS","newData","totalResults","EXPORT_SUCCESS","CLEAR_ALERTS_SUCCESS","AQUIT_ALERT_SUCCESS","newResults","includes","AQUIT_ALERTS_SUCCESS","AQUIT_PART_OF_ALERTS_SUCCESS","GET_COUNTMARQUEREGION_SUCCESS","GET_COUNTMARQUE_SUCCESS","centresService","addCentre","updateCentre","getCentres","delCentre","centreId","centres","centre","getCentresBy","clearCentres","GET_CENTRES_SUCCESS","ADD_CENTRE_SUCCESS","UPDATE_CENTRE_SUCCESS","DEL_CENTRE_SUCCESS","CLEAR_CENTRES","webpackContext","req","webpackContextResolve","keys","stationsService","addStation","updateStation","getStations","delStation","stationId","stations","station","getStationsBy","clearStations","GET_STATIONS_SUCCESS","ADD_STATION_SUCCESS","UPDATE_STATION_SUCCESS","DEL_STATION_SUCCESS","CLEAR_STATIONS","authComputed","mapState","mapGetters","languageComputed","devicesComputed","alertsComputed","configsAlertsComputed","offlineAlertsComputed","logsComputed","rafcComputed","consolidatedComputed","regionsComputed","provincesComputed","statesComputed","vaccintypesComputed","causesComputed","marquesComputed","actionsComputed","operationsComputed","mtcEventsComputed","interventionsComputed","interventionsMobileComputed","planificationsComputed","materialsComputed","centresComputed","interventionOperationsComputed","usersComputed","stationsComputed","layoutComputed","layoutType","leftSidebarType","layoutWidth","topbar","loader","layoutMethods","mapActions","notificationMethods","authMethods","languageMethods","devicesMethods","alertsMethods","configAlertsMethods","offlineAlertsMethods","logsMethods","rafcMethods","consolidatedMethods","regionsMethods","statesMethods","vaccintypesMethods","causesMethods","marquesMethods","actionsMethods","operationsMethods","mtcEventsMethods","interventionsMethods","interventionsMobileMethods","planificationsMethods","materialsMethods","centresMethods","interventionOperationsMethods","usersMethods","provincesMethods","stationsMethods","render","_vm","this","_c","_self","attrs","staticRenderFns","page","titleTemplate","title","$store","appConfig","created","computed","methods","startWebSocket","store","userId","getAvatarControl","watch","component","Vue","config","productionTip","use","VueYoutube","BootstrapVue","Vuetify","vco","Vuelidate","VueFullscreen","VueSweetalert2","VueMask","require","VueGoogleMaps","load","libraries","installComponents","VueApexCharts","HighchartsVue","stockInit","Highcharts","stockExporting","stockDataExporting","stockNoData","i18n","vuetify","h","App","$mount","lang","language","getLanguage","changeLang","CHANGE_LANGUAGE","consolidatedService","getConsolidated","consolidated","getConsolidatedBy","CONSOLIDATED_SUCCESS","CLEAR_CONSOLIDATED_SUCCESS","baseURL","interceptors","userParse","originalRequest","_retry","removeItem","modulesCache","storeData","getNamespace","subtree","path","namespace","namespaced","requireModule","forEach","fileName","moduleDefinition","modulePath","replace","split","camelCase","pop","Vuex","Store","strict","process","loadLocaleMessages","locales","matched","match","locale","VueI18n","fallbackLocale","logsService","getLogs","updateLog","filtredParams","logId","logs","getLogsBy","more","clearLogs","LOGS_SUCCESS","UPDATE_LOG_SUCCESS","LOGS_MORE_SUCCESS","concat","CLEAR_LOGS_SUCCESS","causesService","addCause","updateCause","getCauses","delCause","causeId","getCausesBy","clearCauses","GET_CAUSES_SUCCESS","ADD_CAUSE_SUCCESS","UPDATE_CAUSE_SUCCESS","DEL_CAUSE_SUCCESS","CLEAR_CAUSES","meta","beforeResolve","routeTo","routeFrom","next","authRequired","permissions","permission","role","VueRouter","VueMeta","keyName","routes","scrollBehavior","savedPosition","x","y","beforeEach","VUE_APP_DEFAULT_AUTH","some","route","validUser","redirectToLogin","query","redirectFrom","fullPath","publicPages","authpage","args","planificationsService","addPlanification","updatePlanification","getPlanifications","delPlanification","uploadPlanifications","planificationId","date","planifications","upload","planification","getPlanificationsBy","clearPlanifications","GET_PLANIFICATIONS_SUCCESS","UPLOAD_PLANIFICATION_SUCCESS","ADD_PLANIFICATION_SUCCESS","UPDATE_PLANIFICATION_SUCCESS","DEL_PLANIFICATION_SUCCESS","CLEAR_PLANIFICATIONS","usersService","addUser","updateUser","delUser","getUsers","getUser","updateAvatar","getAvatar","fullName","oldPassword","newPassword","avatar","urlCreator","webkitURL","users","userPassword","userAvatar","getUsersBy","getUserInfos","clearUsers","USERS_SUCCESS","USER_SUCCESS","ADD_USER_SUCCESS","UPDATE_USER_SUCCESS","DEL_USER_SUCCESS","CHANGE_PASSWORD_SUCCESS","AVATAR_SUCCESS","AVATAR_FAILED","CLEAR_USERS_SUCCESS","vaccintypesService","addVaccintype","updateVaccintype","getVaccintypes","delVaccintype","vaccintypeId","vaccintypes","vaccintype","getVaccintypesBy","clearVaccintypes","GET_VACCINTYPES_SUCCESS","ADD_VACCINTYPE_SUCCESS","UPDATE_VACCINTYPE_SUCCESS","DEL_VACCINTYPE_SUCCESS","CLEAR_VACCINTYPES","interventionsService","addIntervention","updateIntervention","getInterventions","delIntervention","getCountByAction","getCountByTypeequip","getCountByMarque","getCountByRegion","interventionId","interventions","countByAction","countByTypeequip","countByRegion","intervention","updateInterventions","getInterventionsBy","getCountByActionBy","getCountByTypeequipBy","getCountByMarqueBy","getCountByRegionBy","clearInterventions","GET_INTERVENTIONS_SUCCESS","ADD_INTERVENTION_SUCCESS","UPDATE_INTERVENTION_SUCCESS","DEL_INTERVENTION_SUCCESS","GET_COUNTACTION_SUCCESS","GET_COUNTTYPE_SUCCESS","GET_COUNTREGION_SUCCESS","CLEAR_INTERVENTIONS","CHANGE_LAYOUT","CHANGE_LAYOUT_WIDTH","CHANGE_LEFT_SIDEBAR_TYPE","CHANGE_TOPBAR","LOADER","changeLayoutType","changeLayoutWidth","changeLeftSidebarType","changeTopbar","changeLoaderValue","provincesService","getProvinces","addProvince","updateProvince","delProvince","provinceId","provinces","getProvincesBy","clearProvinces","PROVINCES_SUCCESS","ADD_PROVINCE_SUCCESS","UPDATE_PROVINCE_SUCCESS","DEL_PROVINCE_SUCCESS","CLEAR_PROVINCES_SUCCESS","actionsService","addAction","updateAction","getActions","delAction","actionId","getActionsBy","clearActions","GET_ACTIONS_SUCCESS","ADD_ACTION_SUCCESS","UPDATE_ACTION_SUCCESS","DEL_ACTION_SUCCESS","CLEAR_ACTIONS","interventionsMobileService","getInterventionImg","img","getInterventionImgData","GET_INTERVENTION_IMG_SUCCESS","operationsService","addOperation","updateOperation","getOperations","delOperation","operationId","operations","getOperationsBy","clearOperations","GET_OPERATIONS_SUCCESS","ADD_OPERATION_SUCCESS","UPDATE_OPERATION_SUCCESS","DEL_OPERATION_SUCCESS","CLEAR_OPERATIONS","devicesService","getAllDevices","getDevices","exportDevicesXLS","exportAllDevicesXLS","getDevicesTransport","getDeviceInfos","getDeviceInfosBySerial","getEvents","addDevice","updateDevice","delDevice","interventionOffline","aquitDeviceOffline","limit","sortBy","thermostat","stockType","lat","lng","vaccinTypes","phones","dashboard","interventionState","deviceId","savedDosesSino","savedDosesFizer","alertId","allDevices","devicesTransport","interventionDevice","aquitDevice","getDevice","getInterventionDevice","getAquitDevice","getAllDevicesBy","getDevicesBy","getDevicesTransportBy","getEventsBy","clearDevices","GET_ALL_DEVICES_SUCCESS","GET_DEVICES_SUCCESS","GET_DEVICES_TRANSPORT_SUCCESS","GET_DEVICE_INFOS_SUCCESS","GET_EVENTS_SUCCESS","ADD_DEVICE_SUCCESS","UPDATE_DEVICE_SUCCESS","DEL_DEVICE_SUCCESS","INTERVENTION_OFFLINE_SUCCESS","CLEAR_DEVICES","AQUIT_DEVICE_SUCCESS","ws_url","configalertsService","addConfigAlert","updateConfigAlert","getConfigAlerts","delConfigAlert","configAlertId","condition","minutesFirstAlert","minutesBetweenAlerts","configAlerts","configAlert","getConfigAlertsBy","clearConfigAlerts","GET_CONFIGALERTS_SUCCESS","ADD_CONFIGALERT_SUCCESS","UPDATE_CONFIGALERT_SUCCESS","DEL_CONFIGALERT_SUCCESS","CLEAR_CONFIGALERTS","interventionOperationsService","addInterventionOperation","updateInterventionOperation","getInterventionOperations","delInterventionOperation","interventionOperationId","interventionOperations","interventionOperation","updateInterventionOperations","getInterventionOperationsBy","clearInterventionOperations","GET_INTERVENTIONACTIONS_SUCCESS","ADD_INTERVENTIONACTION_SUCCESS","UPDATE_INTERVENTIONACTION_SUCCESS","DEL_INTERVENTIONACTION_SUCCESS","CLEAR_INTERVENTIONACTIONS","materialsService","addMaterial","updateMaterial","getMaterials","delMaterial","materialId","materials","material","getMaterialsBy","clearMaterials","GET_MATERIALS_SUCCESS","ADD_MATERIAL_SUCCESS","UPDATE_MATERIAL_SUCCESS","DEL_MATERIAL_SUCCESS","CLEAR_MATERIALS"],"mappings":"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","file":"js/app.0ba38512.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-052f2cf9\":\"0c71020f\",\"chunk-71259e49\":\"7b7d26d2\",\"chunk-742b9690\":\"0b770e25\",\"chunk-45763624\":\"60bbcf04\",\"chunk-7ab46049\":\"f19b66bc\",\"chunk-8ce1c922\":\"566f5399\",\"chunk-a77784ac\":\"3e2bd823\",\"chunk-1aaedf29\":\"c4009416\",\"chunk-252974e8\":\"0d79d1ac\",\"chunk-47ab019c\":\"dedd0a58\",\"chunk-4d8e8e5c\":\"a5434b6f\",\"chunk-4d8f1df4\":\"413ccabb\",\"chunk-4d9110a8\":\"f3c9378b\",\"chunk-4d91f9a0\":\"2d79d627\",\"chunk-4dbe5988\":\"33cb231b\",\"chunk-509d81e5\":\"809d567d\",\"chunk-3857f890\":\"4bb2fcc6\",\"chunk-18d75583\":\"2a17b44e\",\"chunk-229a48d8\":\"14c9eaf4\",\"chunk-2e36daa8\":\"a5dc1e24\",\"chunk-6aefcfbc\":\"63e402f9\",\"chunk-6a8952d6\":\"f84e9d14\",\"chunk-79d99662\":\"b86ad227\",\"chunk-7c072f99\":\"9cd88ae7\",\"chunk-7fd08e3a\":\"eae6c00c\",\"chunk-8602994c\":\"7987ce1b\",\"chunk-89057f38\":\"5483cf4d\",\"chunk-9c112b70\":\"2ac980ca\",\"chunk-da335a76\":\"147878e7\",\"chunk-da4217a2\":\"2490e138\",\"chunk-0981e897\":\"aed71994\",\"chunk-1213cc0e\":\"09b258ed\",\"chunk-3a14647c\":\"4392a8e2\",\"chunk-4ce88a7a\":\"ec7a15be\",\"chunk-54d465d0\":\"2669e9db\",\"chunk-5c00b24e\":\"c9a58c94\",\"chunk-5fa541b6\":\"cdac1568\",\"chunk-60e425d9\":\"13dbc7d5\",\"chunk-657165c6\":\"25a6b195\",\"chunk-66359e22\":\"46601103\",\"chunk-f1ac3a1c\":\"b3225268\",\"chunk-456085bc\":\"703d25e4\",\"chunk-25808203\":\"c3c4debc\",\"chunk-2e1bcd0f\":\"bf6ac547\",\"chunk-55fc0149\":\"392824e6\",\"chunk-9c7d7f10\":\"27e91e47\",\"chunk-fecc902c\":\"f07487ae\",\"chunk-68b9fa14\":\"2f206277\",\"chunk-25735e7c\":\"d9bafe36\",\"chunk-717c397e\":\"28422ee1\",\"chunk-edd40058\":\"706d1f1b\",\"chunk-ef372700\":\"d15d6879\",\"chunk-f6a67c64\":\"a103a79c\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-45763624\":1,\"chunk-a77784ac\":1,\"chunk-1aaedf29\":1,\"chunk-252974e8\":1,\"chunk-47ab019c\":1,\"chunk-509d81e5\":1,\"chunk-3857f890\":1,\"chunk-18d75583\":1,\"chunk-229a48d8\":1,\"chunk-2e36daa8\":1,\"chunk-6aefcfbc\":1,\"chunk-6a8952d6\":1,\"chunk-79d99662\":1,\"chunk-7c072f99\":1,\"chunk-7fd08e3a\":1,\"chunk-8602994c\":1,\"chunk-89057f38\":1,\"chunk-9c112b70\":1,\"chunk-da335a76\":1,\"chunk-0981e897\":1,\"chunk-1213cc0e\":1,\"chunk-3a14647c\":1,\"chunk-4ce88a7a\":1,\"chunk-54d465d0\":1,\"chunk-5c00b24e\":1,\"chunk-5fa541b6\":1,\"chunk-60e425d9\":1,\"chunk-657165c6\":1,\"chunk-66359e22\":1,\"chunk-f1ac3a1c\":1,\"chunk-25808203\":1,\"chunk-2e1bcd0f\":1,\"chunk-55fc0149\":1,\"chunk-9c7d7f10\":1,\"chunk-fecc902c\":1,\"chunk-68b9fa14\":1,\"chunk-25735e7c\":1,\"chunk-717c397e\":1,\"chunk-edd40058\":1,\"chunk-ef372700\":1,\"chunk-f6a67c64\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-052f2cf9\":\"31d6cfe0\",\"chunk-71259e49\":\"31d6cfe0\",\"chunk-742b9690\":\"31d6cfe0\",\"chunk-45763624\":\"0473dc7e\",\"chunk-7ab46049\":\"31d6cfe0\",\"chunk-8ce1c922\":\"31d6cfe0\",\"chunk-a77784ac\":\"94b5d54f\",\"chunk-1aaedf29\":\"628cf5f3\",\"chunk-252974e8\":\"628cf5f3\",\"chunk-47ab019c\":\"628cf5f3\",\"chunk-4d8e8e5c\":\"31d6cfe0\",\"chunk-4d8f1df4\":\"31d6cfe0\",\"chunk-4d9110a8\":\"31d6cfe0\",\"chunk-4d91f9a0\":\"31d6cfe0\",\"chunk-4dbe5988\":\"31d6cfe0\",\"chunk-509d81e5\":\"628cf5f3\",\"chunk-3857f890\":\"f5231720\",\"chunk-18d75583\":\"d317f793\",\"chunk-229a48d8\":\"990f8f63\",\"chunk-2e36daa8\":\"aaa29014\",\"chunk-6aefcfbc\":\"a0b534c4\",\"chunk-6a8952d6\":\"e0598354\",\"chunk-79d99662\":\"628cf5f3\",\"chunk-7c072f99\":\"628cf5f3\",\"chunk-7fd08e3a\":\"628cf5f3\",\"chunk-8602994c\":\"628cf5f3\",\"chunk-89057f38\":\"628cf5f3\",\"chunk-9c112b70\":\"628cf5f3\",\"chunk-da335a76\":\"628cf5f3\",\"chunk-da4217a2\":\"31d6cfe0\",\"chunk-0981e897\":\"3d2a6c4e\",\"chunk-1213cc0e\":\"f0c5e9e5\",\"chunk-3a14647c\":\"fd273593\",\"chunk-4ce88a7a\":\"628cf5f3\",\"chunk-54d465d0\":\"628cf5f3\",\"chunk-5c00b24e\":\"f1d87af7\",\"chunk-5fa541b6\":\"628cf5f3\",\"chunk-60e425d9\":\"18a1166b\",\"chunk-657165c6\":\"f1d87af7\",\"chunk-66359e22\":\"f1d87af7\",\"chunk-f1ac3a1c\":\"7cb26f44\",\"chunk-456085bc\":\"31d6cfe0\",\"chunk-25808203\":\"307192be\",\"chunk-2e1bcd0f\":\"e68939ef\",\"chunk-55fc0149\":\"6d408658\",\"chunk-9c7d7f10\":\"628cf5f3\",\"chunk-fecc902c\":\"b565caee\",\"chunk-68b9fa14\":\"628cf5f3\",\"chunk-25735e7c\":\"7948d31b\",\"chunk-717c397e\":\"e6d8eab8\",\"chunk-edd40058\":\"4090a66c\",\"chunk-ef372700\":\"628cf5f3\",\"chunk-f6a67c64\":\"628cf5f3\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export function authHeader() {\n // return authorization header with jwt token\n let user = JSON.parse(localStorage.getItem('user'));\n if (user) {\n return { 'Authorization': 'Bearer ' + user.token.accessToken };\n } else {\n return {};\n }\n}","import { authHeader } from \"./auth-header\";\nimport axios from \"axios\";\nimport env from \"../../utils/env\"\n\nexport const userService = {\n login,\n logout,\n resetPassword,\n changePassword,\n register,\n getAll,\n};\nasync function login(email, password) {\n\n try {\n const res = await axios.post(env.base_url + `/auth/login`, { email, password });\n const usr = res.data;\n usr.tokens = { accessToken: usr.tokens.access.token, refreshToken: usr.tokens.refresh.token }\n if (usr.tokens) {\n localStorage.setItem(\"user\", JSON.stringify(usr));\n }\n return Promise.resolve(usr);\n } catch (err) {\n if (err.response) {\n if (err.response.status == '401') {\n return Promise.reject(\"Incorrect Email or Password!\");\n } else if (err.response.status == '400') {\n return Promise.reject(\"Erreur validation !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n } else {\n return Promise.reject(\"Veillez ressayer plus tard !\");\n }\n }\n}\n\nasync function resetPassword(email) {\n try {\n const res = await axios.post(env.base_url + `/auth/send-password-reset`, { email });\n return res.data;\n } catch (err) {\n if (err.response.status == '401') {\n return Promise.reject(\"Email not found !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nasync function changePassword(email, password, resetToken) {\n try {\n const res = await axios.post(env.base_url + `/auth/reset-password`, { email, password, resetToken });\n return res.data;\n } catch (err) {\n if (err.response.status == '401') {\n return Promise.reject(\"Email not found !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nasync function logout(email, refreshToken) {\n // remove user from local storage to log user out\n try {\n const res = await axios.post(env.base_url + `/auth/logout`, { email, refreshToken });\n return Promise.resolve(res);\n } catch (err) {\n if (err.response.status == '401') {\n return Promise.reject(\"Incorrect Email or Password!\");\n } else if (err.response.status == '404') {\n return Promise.reject(err);\n }\n else if (err.response.status == '400') {\n return Promise.reject(\"Erreur validation !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nasync function register(user) {\n try {\n const res = await axios.post(env.base_url + `/auth/register`, user);\n const usr = res.data;\n usr.tokens = { accessToken: usr.token.access.token, refreshToken: usr.token.refresh.token }\n if (usr.tokens) {\n localStorage.setItem(\"user\", JSON.stringify(usr));\n }\n return usr;\n } catch (err) {\n if (err.response.status == '409') {\n return Promise.reject(\"Erreur Email or Organisation Exists !\");\n } else if (err.response.status == '400') {\n return Promise.reject(\"Erreur validation !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nfunction getAll() {\n const requestOptions = {\n method: \"GET\",\n headers: authHeader(),\n };\n return fetch(`/users`, requestOptions).then(handleResponse);\n}\n\nfunction handleResponse(response) {\n return response.text().then((text) => {\n const data = text && JSON.parse(text);\n if (!response.ok) {\n if (response.status === 401) {\n // auto logout if 401 response returned from api\n logout();\n location.reload(true);\n }\n const error = (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n return data;\n });\n}\n","import { userService } from '../../helpers/backend/user.service';\nimport router from '../../router/index';\n\nconst user = JSON.parse(localStorage.getItem('user'));\n\nexport const state = {\n currentUser: user ? user : null,\n}\n\nexport const getters = {\n // Whether the user is currently logged in.\n loggedIn(state) {\n return state.currentUser;\n }\n}\n \n\nexport const actions = {\n // Logs in the user.\n \n changeTokens({ commit }, {accessToken, refreshToken}){\n let token = {\n accessToken: accessToken,\n refreshToken: refreshToken\n }\n commit('SET_NEW_TOKENS', token);\n },\n login({ dispatch, commit }, { email, password }) {\n //commit('loginRequest', { email });\n\n userService.login(email, password)\n .then(\n user => {\n commit('SET_CURRENT_USER', user);\n //dispatch('users/getAvatarControl', {userId: user.user.id}, {root: true})\n router.push('/');\n },\n error => {\n commit('loginFailure', error);\n dispatch('notification/error', error, { root: true });\n }\n );\n },\n // Logout the user\n logout({ dispatch, commit }, { email, refreshToken }) {\n return new Promise((resolve, reject) => {\n userService.logout(email, refreshToken)\n .then(user=>{\n commit('logout');\n resolve(user)\n })\n .catch(err=>{\n dispatch('notification/error', err, { root: true });\n reject(err)\n })\n })\n },\n // reset password\n resetPassword({ dispatch }, { email }) {\n return new Promise((resolve, reject) => {\n userService.resetPassword(email)\n .then(\n response => {\n let message = response.data;\n resolve(message);\n },\n error => {\n dispatch('notification/error', error, { root: true });\n reject(error);\n }\n );\n });\n },\n // change password\n changePassword({ dispatch }, { email, password, resetToken }) {\n\n userService.changePassword(email, password, resetToken)\n .then(\n response => {\n console.log(response);\n dispatch('notification/success', 'Password changed successfully', { root: true });\n router.push('/login');\n },\n error => {\n dispatch('notification/error', error, { root: true });\n }\n );\n },\n\n // register the user\n registeruser({ dispatch, commit }, user) {\n return new Promise((resolve, reject) => {\n commit('registerRequest', user);\n userService.register(user)\n .then(\n user => {\n commit('registerSuccess', user);\n dispatch('notification/success', 'Registration successful', { root: true });\n commit('SET_CURRENT_USER', user);\n router.push('/');\n resolve(user);\n },\n error => {\n commit('registerFailure', error);\n dispatch('notification/error', error, { root: true });\n reject(error);\n }\n );\n });\n }\n};\n\nexport const mutations = {\n SET_NEW_TOKENS(state, token){\n state.currentUser.tokens = token\n },\n SET_CURRENT_USER(state, newValue) {\n state.currentUser = newValue;\n },\n logout(state) {\n state.currentUser = null;\n },\n loginRequest(state, user) {\n state.status = { loggingIn: true };\n state.user = user;\n },\n loginSuccess(state, user) {\n state.status = { loggeduser: true };\n state.user = user;\n },\n loginFailure(state) {\n state.status = {};\n state.user = null;\n },\n registerRequest(state) {\n state.status = { registering: true };\n },\n registerSuccess(state) {\n state.status = {};\n },\n registerFailure(state) {\n state.status = {};\n }\n};\n\n","import { API } from \"./axios\";\n\nexport const rafcService = {\n getRafc,\n manageRafc\n};\n\n// Get Rafc\n\nasync function getRafc(params) {\n try {\n const res = await API.get(`/events/rafc`, { params: params });\n return {\n ...res.data,\n loaderDashboard: false,\n }\n\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// Manage Rafc\n\nasync function manageRafc(params) {\n try {\n const res = await API.post(`/devices/rafc`, params);\n return {\n ...res.data,\n loaderDashboard: false,\n }\n\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { rafcService } from '../../helpers/backend/rafc.service';\n\nexport const state = {\n rafc: [],\n rafcNouaceur: {},\n manageStatus: null,\n}\n\nexport const getters = {\n getRafc(state) {\n return state.rafc;\n },\n getRafcNouaceur(state) {\n return state.rafcNouaceur;\n },\n}\n\nexport const actions = {\n getRafcBy({ commit }, params) {\n return rafcService.getRafc(params)\n .then(\n rafc => {\n commit(\"RAFC_SUCCESS\", rafc)\n return Promise.resolve(rafc);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n manageRAFC({commit}, params) {\n return rafcService.manageRafc(params)\n .then(\n res => {\n commit(\"MANAGE_SUCCESS\", res)\n return Promise.resolve(res);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n clearRafc({ commit }) {\n commit(\"CLEAR_RAFC_SUCCESS\")\n },\n}\n\nexport const mutations = {\n RAFC_SUCCESS(state, rafc) {\n state.rafc = rafc;\n },\n RAFC_NOUACEUR_SUCCESS(state, rafc) {\n state.rafcNouaceur = rafc;\n },\n CLEAR_RAFC_SUCCESS(state) {\n state.rafc = {};\n },\n MANAGE_SUCCESS(state, status){\n state.manageStatus = status;\n }\n}","export const state = {\n type: null,\n message: null\n};\n\nexport const mutations = {\n success(state, message) {\n state.type = 'success';\n state.message = message;\n },\n error(state, message) {\n state.type = 'danger';\n state.message = message;\n },\n clear(state) {\n state.type = null;\n state.message = null;\n }\n};\n\nexport const actions = {\n success({ commit }, message) {\n commit('success', message);\n },\n error({ commit }, message) {\n commit('error', message);\n },\n clear({ commit }) {\n commit('clear');\n }\n};\n","import {API} from \"./axios\";\n\nexport const mtcEventsService = {\n addMtcEvent,\n updateMtcEvent,\n getMtcEvents,\n delMtcEvent,\n getCountByMonthRegion,\n getCountByMonths,\n getCountByCurrentMonth\n};\n\n// ####################################################################### ADD MtcEvent\n\nasync function addMtcEvent(params) {\n try{\n const res = await API.post(`/mtc-events/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE MtcEvent\n\nasync function updateMtcEvent(params) {\n try{\n const res = await API.patch(`/mtc-events/${params.mtcEventId}`, {\n region: params.region,\n province: params.province,\n nbPrev: params.nbPrev,\n nbCorr: params.nbCorr,\n nbRegl: params.nbRegl\n });\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE MtcEvent\n\nasync function delMtcEvent(id) {\n\n try{\n const res = await API.delete(`/mtc-events/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"mtc event Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET MtcEventS\n\nasync function getMtcEvents(params){\n try{\n const res = await API.get(`/mtc-events`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET COUNT BY Month Region\n\nasync function getCountByMonthRegion(params){\n try{\n const res = await API.get(`/mtc-events/countByMonthRegion`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET COUNT BY Months\n\nasync function getCountByMonths(params){\n try{\n const res = await API.get(`/mtc-events/countByMonths`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET CURRENT BY Month\n\nasync function getCountByCurrentMonth(params){\n try{\n const res = await API.get(`/mtc-events/countByCurrentMonth`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { mtcEventsService } from '../../helpers/backend/mtcevents.service';\n\nexport const state = {\n mtcEvents: {},\n countByMonths: [],\n countByMonthRegion: [],\n countByCurrentMonth: []\n}\n\nexport const getters = {\n getMtcEvents(state) {\n return state.mtcEvents\n },\n getCountByMonths(state) {\n return state.countByMonths\n },\n getCountByMonthRegion(state) {\n return state.countByMonthRegion\n },\n getCountByCurrentMonth(state) {\n return state.countByCurrentMonth\n }\n}\n\nexport const actions = {\n\n addMtcEvent({ commit }, params) {\n return mtcEventsService.addMtcEvent(params)\n .then(\n mtcEvent => {\n commit(\"ADD_MTCEVENT_SUCCESS\", mtcEvent)\n return Promise.resolve(mtcEvent);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateMtcEvent({ commit }, params) {\n return mtcEventsService.updateMtcEvent(params)\n .then(\n mtcEvent => {\n commit(\"UPDATE_MTCEVENT_SUCCESS\", mtcEvent)\n return Promise.resolve(mtcEvent);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delMtcEvent({ commit }, id) {\n return mtcEventsService.delMtcEvent(id)\n .then(\n mtcEvent => {\n commit(\"DEL_MTCEVENT_SUCCESS\", id)\n return Promise.resolve(mtcEvent);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getMtcEventsBy({ commit }, params) {\n return mtcEventsService.getMtcEvents(params)\n .then(\n mtcEvents => {\n commit(\"GET_MTCEVENTS_SUCCESS\", mtcEvents);\n return Promise.resolve(mtcEvents)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getCountByMonthRegionBy({commit}, params) {\n return mtcEventsService.getCountByMonthRegion(params)\n .then(\n count => {\n commit(\"GET_COUNTREGIONMONTH_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getCountByMonthsBy({commit}, params) {\n return mtcEventsService.getCountByMonths(params)\n .then(\n count => {\n commit(\"GET_COUNTMONTHS_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getCountByCurrentMonthBy({commit}, params) {\n return mtcEventsService.getCountByCurrentMonth(params)\n .then(\n count => {\n commit(\"GET_COUNTCURRENTMONTH_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n clearMtcEvents({ commit }) {\n commit(\"CLEAR_MTCEVENTS\")\n }\n};\n\nexport const mutations = {\n GET_MTCEVENTS_SUCCESS(state, mtcEvents) {\n state.mtcEvents = mtcEvents;\n },\n ADD_MTCEVENT_SUCCESS(state, mtcEvent) {\n if(mtcEvent.type == \"CORRECTIVE\"){\n let results = [...state.mtcEvents.results, mtcEvent]\n state.mtcEvents = {...state.mtcEvents, results: results}\n }\n },\n UPDATE_MTCEVENT_SUCCESS(state, mtcEvent) {\n let results = state.mtcEvents.results.map(obj => obj.id == mtcEvent.id ? mtcEvent : obj)\n state.mtcEvents = {...state.mtcEvents, results: results}\n },\n DEL_MTCEVENT_SUCCESS(state, id) {\n let results = state.mtcEvents.results.filter(obj => obj.id != id)\n state.mtcEvents = {...state.mtcEvents, results: results}\n },\n GET_COUNTREGIONMONTH_SUCCESS(state, count) {\n state.countByMonthRegion = count;\n },\n GET_COUNTMONTHS_SUCCESS(state, count) {\n state.countByMonths = count;\n },\n GET_COUNTCURRENTMONTH_SUCCESS(state, count) {\n state.countByCurrentMonth = count;\n },\n CLEAR_MTCEVENTS(state) {\n state.mtcEvents = {}\n },\n};","import {API} from \"./axios\";\n\nexport const marquesService = {\n addMarque,\n updateMarque,\n getMarques,\n delMarque\n};\n\n// ####################################################################### ADD MARQUE\n\nasync function addMarque(params) {\n try{\n const res = await API.post(`/marques/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE MARQUE\n\nasync function updateMarque(params) {\n try{\n const res = await API.patch(`/marques/${params.marqueId}`, {name: params.name});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE MARQUE\n\nasync function delMarque(id) {\n\n try{\n const res = await API.delete(`/marques/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"marque Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET MARQUES\n\nasync function getMarques(params){\n try{\n const res = await API.get(`/marques`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { marquesService } from '../../helpers/backend/marques.service';\n\nexport const state = {\n marques: {},\n}\n\nexport const getters = {\n getMarques(state){\n return state.marques\n },\n}\n\nexport const actions = {\n\n addMarque({ commit }, params) {\n return marquesService.addMarque(params)\n .then(\n marque => {\n commit(\"ADD_MARQUE_SUCCESS\", marque)\n return Promise.resolve(marque);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateMarque({ commit }, params) {\n return marquesService.updateMarque(params)\n .then(\n marque => {\n commit(\"UPDATE_MARQUE_SUCCESS\", marque)\n return Promise.resolve(marque);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delMarque({ commit }, id) {\n return marquesService.delMarque(id)\n .then(\n marque => {\n commit(\"DEL_MARQUE_SUCCESS\", id)\n return Promise.resolve(marque);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getMarquesBy({ commit }, params) {\n return marquesService.getMarques(params)\n .then(\n marques => {\n commit(\"GET_MARQUES_SUCCESS\", marques);\n return Promise.resolve(marques)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearMarques({ commit }) {\n commit(\"CLEAR_MARQUES\")\n }\n};\n\nexport const mutations = {\n GET_MARQUES_SUCCESS(state, marques) {\n state.marques = marques;\n },\n ADD_MARQUE_SUCCESS(state, marque) {\n let results = [...state.marques.results, marque]\n state.marques = {...state.marques, results: results}\n },\n UPDATE_MARQUE_SUCCESS(state, marque) {\n let results = state.marques.results.map(obj => obj.id == marque.id ? marque : obj)\n state.marques = {...state.marques, results: results}\n },\n DEL_MARQUE_SUCCESS(state, id){\n let results = state.marques.results.filter(obj => obj.id != id)\n state.marques = {...state.marques, results: results}\n },\n CLEAR_MARQUES(state){\n state.marques = {}\n },\n};","import {API} from \"./axios\";\n\nexport const homeService = {\n postInfos,\n};\n\n// Post Infos\n\nasync function postInfos(params){\n try{\n const res = await API.post(`/infos/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { homeService } from '../../helpers/backend/home.service';\n\nexport const state = {\n data:{},\n error: \"\"\n}\n\nexport const getters = {\n getData(state){\n return state.data\n },\n}\n\nexport const actions = {\n\n postInfos({ commit }, params) {\n return homeService.postInfos(params)\n .then(\n data => {\n commit(\"dataSuccess\", data)\n return Promise.resolve(data);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n};\n\nexport const mutations = {\n dataSuccess(state, events) {\n state.data = events;\n },\n};","import {API} from \"./axios\";\n\nexport const statesService = {\n addState,\n updateState,\n getStates,\n delState\n};\n\n// ####################################################################### ADD State\n\nasync function addState(params) {\n try{\n const res = await API.post(`/states/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE State\n\nasync function updateState(params) {\n try{\n const res = await API.patch(`/states/${params.stateId}`, {\n name: params.name,\n isClosed: params.isClosed,\n });\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE State\n\nasync function delState(id) {\n\n try{\n const res = await API.delete(`/states/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"state Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET States\n\nasync function getStates(params){\n try{\n const res = await API.get(`/states`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { statesService } from '../../helpers/backend/states.service';\n\nexport const state = {\n states: {},\n}\n\nexport const getters = {\n getStates(state){\n return state.states\n },\n}\n\nexport const actions = {\n\n addState({ commit }, params) {\n return statesService.addState(params)\n .then(\n status => {\n commit(\"ADD_STATE_SUCCESS\", status)\n return Promise.resolve(status);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateState({ commit }, params) {\n return statesService.updateState(params)\n .then(\n status => {\n commit(\"UPDATE_STATE_SUCCESS\", status)\n return Promise.resolve(status);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delState({ commit }, id) {\n return statesService.delState(id)\n .then(\n state => {\n commit(\"DEL_STATE_SUCCESS\", id)\n return Promise.resolve(state);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getStatesBy({ commit }, params) {\n return statesService.getStates(params)\n .then(\n states => {\n commit(\"GET_STATES_SUCCESS\", states);\n return Promise.resolve(states)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearStates({ commit }) {\n commit(\"CLEAR_STATES\")\n }\n};\n\nexport const mutations = {\n GET_STATES_SUCCESS(state, states) {\n state.states = states;\n },\n ADD_STATE_SUCCESS(state, status) {\n let results = [...state.states.results, status]\n state.states = {...state.states, results: results}\n },\n UPDATE_STATE_SUCCESS(state, status) {\n let results = state.states.results.map(obj => obj.id == status.id ? status : obj)\n state.states = {...state.states, results: results}\n },\n DEL_STATE_SUCCESS(state, id){\n let results = state.states.results.filter(obj => obj.id != id)\n state.states = {...state.states, results: results}\n },\n CLEAR_STATES(state){\n state.states = {}\n },\n};","import {API} from \"./axios\";\n\nexport const regionsService = {\n getRegions,\n addRegion,\n updateRegion,\n delRegion\n};\n\n// Get Regions\n\nasync function getRegions(params){\n try{\n const res = await API.get(`/regions`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(\"Erreur Validations !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### ADD Region\n\nasync function addRegion(params) {\n try{\n const res = await API.post(`/regions/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE Region\n\nasync function updateRegion(params) {\n try{\n const res = await API.patch(`/regions/${params.regionId}`, {name: params.name});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE Region\n\nasync function delRegion(id) {\n\n try{\n const res = await API.delete(`/regions/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"region Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { regionsService } from '../../helpers/backend/regions.service';\n\nexport const state = {\n regions: {},\n}\n\nexport const getters = {\n getRegions(state) {\n return state.regions;\n },\n}\n\nexport const actions = {\n getRegionsBy({ commit }, params) {\n return regionsService.getRegions(params)\n .then(\n regions => {\n commit(\"REGIONS_SUCCESS\", regions)\n return Promise.resolve(regions);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n addRegion({ commit }, params) {\n return regionsService.addRegion(params)\n .then(\n region => {\n commit(\"ADD_REGION_SUCCESS\", region)\n return Promise.resolve(region);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateRegion({ commit }, params) {\n return regionsService.updateRegion(params)\n .then(\n region => {\n commit(\"UPDATE_REGION_SUCCESS\", region)\n return Promise.resolve(region);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delRegion({ commit }, id) {\n return regionsService.delRegion(id)\n .then(\n region => {\n commit(\"DEL_REGION_SUCCESS\", id)\n return Promise.resolve(region);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n clearRegions({ commit }) {\n commit(\"CLEAR_REGIONS_SUCCESS\")\n },\n}\n\nexport const mutations = {\n REGIONS_SUCCESS(state, regions) {\n state.regions = regions;\n },\n ADD_REGION_SUCCESS(state, region) {\n let results = [...state.regions.results, region]\n state.regions = { ...state.regions, results: results }\n },\n UPDATE_REGION_SUCCESS(state, region) {\n let results = state.regions.results.map(obj => obj.id == region.id ? region : obj)\n state.regions = { ...state.regions, results: results }\n },\n DEL_REGION_SUCCESS(state, id) {\n let results = state.regions.results.filter(obj => obj.id != id)\n state.regions = { ...state.regions, results: results }\n },\n\n CLEAR_REGIONS_SUCCESS(state) {\n state.regions = {};\n },\n}","import { API } from \"./axios\";\n\nexport const alertsService = {\n getAlerts,\n getNumberByType,\n aquitAlert,\n aquitAlerts,\n exportXLS,\n countByMarqueRegion,\n countByMarque\n};\n\n// Get Alerts\n\nasync function getAlerts(params) {\n try {\n const res = await API.post(`/alerts`, params);\n return {\n ...res.data,\n loaderDashboard: false,\n from: params.from || \"\",\n to: params.to || \"\",\n }\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nasync function getNumberByType(params) {\n try {\n const res = await API.post(`/alerts/getNumberByType`, params);\n return {\n ...res.data,\n loaderDashboard: false,\n }\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nasync function aquitAlert(params) {\n try {\n const res = await API.patch(`/alerts/${params.ref}`, {\n state: params.state,\n action: params.action,\n operation: params.operation,\n cause: params.cause,\n savedDoses: params.savedDoses,\n hours: params.hours,\n dateAquit: params.createdAt,\n value: params.value,\n note: params.note,\n });\n return res.data\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nasync function aquitAlerts(params) {\n try {\n const res = await API.post(`/alerts/all`, {\n devices: params.devices,\n state: params.state,\n action: params.action,\n operation: params.operation,\n cause: params.cause,\n savedDoses: params.savedDoses,\n hours: params.hours,\n note: params.note,\n });\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### Export Alerts XLS\n\nasync function exportXLS(params) {\n try {\n const res = await API.get(`/alerts/export`, {\n params: params,\n responseType: \"blob\"\n });\n return res;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### COUNT BY MARQUE REGION\n\nasync function countByMarqueRegion() {\n try {\n const res = await API.get(`/alerts/statsByMarqueRegion`);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### COUNT BY MARQUE\n\nasync function countByMarque() {\n try {\n const res = await API.get(`/alerts/statsByMarque`);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { alertsService } from '../../helpers/backend/alerts.service';\n\nexport const state = {\n alerts: {},\n subAlerts: {},\n totalType: {},\n states: {},\n causes: {},\n actions: {},\n export: {},\n countByMarqueRegion: [],\n countByMarque: [],\n}\n\nexport const getters = {\n getAlerts(state) {\n return state.alerts;\n },\n getNumberByType(state) {\n return state.totalType;\n },\n getSubAlerts(state) {\n return state.subAlerts;\n },\n getCountByMarqueRegion(state){\n return state.countByMarqueRegion;\n },\n getStatsByMarque(state){\n return state.countByMarque;\n }\n}\n\nexport const actions = {\n getAlertsBy({ commit }, params) {\n return alertsService.getAlerts(params)\n .then(\n alerts => {\n commit(\"ALERTS_SUCCESS\", alerts)\n return Promise.resolve(alerts);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n getNumberByTypeBy({ commit }, params) {\n return alertsService.getNumberByType(params)\n .then(\n data => {\n commit(\"NUMBER_SUCCESS\", data)\n return Promise.resolve(data);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n getSubAlertsBy({ commit }, params) {\n return alertsService.getAlerts(params)\n .then(\n alerts => {\n commit(\"SUB_ALERTS_SUCCESS\", alerts)\n return Promise.resolve(alerts);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n aquitAlert({ commit }, params) {\n return alertsService.aquitAlert(params)\n .then(\n device => {\n commit(\"AQUIT_ALERT_SUCCESS\", device)\n return Promise.resolve(device);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n aquitAlerts({ commit }, params) {\n return alertsService.aquitAlerts(params)\n .then(\n response => {\n if (response.closed) {\n return Promise.resolve({ closed: true });\n } else {\n commit(\"AQUIT_ALERTS_SUCCESS\", response)\n return Promise.resolve(response);\n }\n\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n aquitPartOfAlerts({ commit }, params) {\n return alertsService.aquitAlerts(params)\n .then(\n response => {\n if (response.closed) {\n commit(\"AQUIT_PART_OF_ALERTS_SUCCESS\", response)\n return Promise.resolve(params.serials);\n } else {\n commit(\"AQUIT_ALERTS_SUCCESS\", response)\n return Promise.resolve(response);\n }\n\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n exportXLSAlerts({commit}, params) {\n return alertsService.exportXLS(params)\n .then(\n res => {\n if(res.status !== 204){\n const url = window.URL.createObjectURL(new Blob([res.data]));\n const link = document.createElement('a');\n link.href = url;\n if(params.serial) link.setAttribute('download', `alerts--${params.from}-${params.to} ${params.serial}.xlsx`);\n else link.setAttribute('download', `alerts--${params.from}-${params.to}.xlsx`);\n document.body.appendChild(link);\n link.click();\n commit(\"EXPORT_SUCCESS\", res)\n return Promise.resolve({status: true});\n }else{\n return Promise.resolve({status: false});\n }\n \n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n clearAlerts({ commit }) {\n commit(\"CLEAR_ALERTS_SUCCESS\")\n },\n getCountByMarqueRegionBy({commit}) {\n return alertsService.countByMarqueRegion()\n .then(\n count => {\n commit(\"GET_COUNTMARQUEREGION_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n getStatsByMarqueBy({commit}) {\n return alertsService.countByMarque()\n .then(\n count => {\n commit(\"GET_COUNTMARQUE_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n}\n\nexport const mutations = {\n ALERTS_SUCCESS(state, alerts) {\n state.alerts = alerts;\n },\n SUB_ALERTS_SUCCESS(state, alerts){\n state.subAlerts = alerts;\n },\n NUMBER_SUCCESS(state, data){\n const newData = {...state.totalType}\n newData[data.type] = data.totalResults;\n state.totalType = newData\n },\n EXPORT_SUCCESS(state, res) {\n state.export = res;\n },\n CLEAR_ALERTS_SUCCESS(state) {\n state.alerts = {};\n },\n\n AQUIT_ALERT_SUCCESS(state, device) {\n let newResults = []\n let alerts = device.alerts.map((obj) => {\n return obj.ref;\n })\n if (device.closed) {\n newResults = state.alerts.results.filter(obj => !alerts.includes(obj.ref))\n } else {\n newResults = state.alerts.results.map(obj => (alerts.includes(obj.ref)) ? { ...obj, state: device.state } : obj)\n }\n state.alerts = { ...state.alerts, results: newResults }\n },\n AQUIT_ALERTS_SUCCESS(state, data) {\n let alerts = data.alerts.map((obj) => {\n return obj.ref;\n })\n let newResults = state.alerts.results.map(obj => {\n if (data.alerts) {\n if (alerts.includes(obj.ref)) {\n return { ...obj, state: data.state };\n }\n else return obj;\n } else {\n return { ...obj, state: data.state };\n }\n\n })\n state.alerts = { ...state.alerts, results: newResults }\n },\n AQUIT_PART_OF_ALERTS_SUCCESS(state, response) {\n let newResults = []\n let alerts = response.alerts.map((obj) => {\n return obj.ref;\n })\n state.alerts.results.map(obj => {\n if (!alerts.includes(obj.ref)) {\n newResults.push(obj)\n }\n })\n state.alerts = { ...state.alerts, results: newResults }\n },\n GET_COUNTMARQUEREGION_SUCCESS(state, response){\n state.countByMarqueRegion = response;\n },\n GET_COUNTMARQUE_SUCCESS(state, response){\n state.countByMarque = response;\n }\n}","import {API} from \"./axios\";\n\nexport const centresService = {\n addCentre,\n updateCentre,\n getCentres,\n delCentre\n};\n\n// ####################################################################### ADD CENTRE\n\nasync function addCentre(params) {\n try{\n const res = await API.post(`/centresante/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE CENTRE\n\nasync function updateCentre(params) {\n try{\n const res = await API.patch(`/centresante/${params.centreId}`, {name: params.name, region: params.region, province: params.province});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE CENTRE\n\nasync function delCentre(id) {\n\n try{\n const res = await API.delete(`/centresante/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"centre Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET CENTRES\n\nasync function getCentres(params){\n try{\n const res = await API.get(`/centresante`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { centresService } from '../../helpers/backend/centres.service';\n\nexport const state = {\n centres: {},\n}\n\nexport const getters = {\n getCentres(state) {\n return state.centres\n },\n}\n\nexport const actions = {\n\n addCentre({ commit }, params) {\n return centresService.addCentre(params)\n .then(\n centre => {\n commit(\"ADD_CENTRE_SUCCESS\", centre)\n return Promise.resolve(centre);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateCentre({ commit }, params) {\n return centresService.updateCentre(params)\n .then(\n centre => {\n commit(\"UPDATE_CENTRE_SUCCESS\", centre)\n return Promise.resolve(centre);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delCentre({ commit }, id) {\n return centresService.delCentre(id)\n .then(\n centre => {\n commit(\"DEL_CENTRE_SUCCESS\", id)\n return Promise.resolve(centre);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getCentresBy({ commit }, params) {\n return centresService.getCentres(params)\n .then(\n centres => {\n commit(\"GET_CENTRES_SUCCESS\", centres);\n return Promise.resolve(centres)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearCentres({ commit }) {\n commit(\"CLEAR_CENTRES\")\n }\n};\n\nexport const mutations = {\n GET_CENTRES_SUCCESS(state, centres) {\n state.centres = centres;\n },\n ADD_CENTRE_SUCCESS(state, centre) {\n let results = [centre , ...state.centres.results]\n state.centres = {...state.centres, results: results}\n },\n UPDATE_CENTRE_SUCCESS(state, centre) {\n let results = state.centres.results.map(obj => obj.id == centre.id ? centre : obj)\n state.centres = {...state.centres, results: results}\n },\n DEL_CENTRE_SUCCESS(state, id) {\n let results = state.centres.results.filter(obj => obj.id != id)\n state.centres = {...state.centres, results: results}\n },\n CLEAR_CENTRES(state) {\n state.centres = {}\n },\n};","var map = {\n\t\"./ar.json\": \"af08\",\n\t\"./en.json\": \"edd4\",\n\t\"./es.json\": \"a306\",\n\t\"./fr.json\": \"f693\",\n\t\"./zh.json\": \"3504\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"49f8\";","import {API} from \"./axios\";\n\nexport const stationsService = {\n addStation,\n updateStation,\n getStations,\n delStation\n};\n\n// ####################################################################### ADD STATION\n\nasync function addStation(params) {\n try{\n const res = await API.post(`/stationhcpluss/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE STATION\n\nasync function updateStation(params) {\n try{\n const res = await API.patch(`/stationhcpluss/${params.stationId}`, {name: params.name});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE STATION\n\nasync function delStation(id) {\n\n try{\n const res = await API.delete(`/stationhcpluss/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"station Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET STATIONS\n\nasync function getStations(params){\n try{\n const res = await API.get(`/stationhcpluss`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { stationsService } from '../../helpers/backend/stationshcplus.service';\n\nexport const state = {\n stations: {},\n}\n\nexport const getters = {\n getStations(state){\n return state.stations\n },\n}\n\nexport const actions = {\n\n addStation({ commit }, params) {\n return stationsService.addStation(params)\n .then(\n station => {\n commit(\"ADD_STATION_SUCCESS\", station)\n return Promise.resolve(station);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateStation({ commit }, params) {\n return stationsService.updateStation(params)\n .then(\n station => {\n commit(\"UPDATE_STATION_SUCCESS\", station)\n return Promise.resolve(station);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delStation({ commit }, id) {\n return stationsService.delStation(id)\n .then(\n station => {\n commit(\"DEL_STATION_SUCCESS\", id)\n return Promise.resolve(station);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getStationsBy({ commit }, params) {\n return stationsService.getStations(params)\n .then(\n stations => {\n commit(\"GET_STATIONS_SUCCESS\", stations);\n return Promise.resolve(stations)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearStations({ commit }) {\n commit(\"CLEAR_STATIONS\")\n }\n};\n\nexport const mutations = {\n GET_STATIONS_SUCCESS(state, stations) {\n state.stations = stations;\n },\n ADD_STATION_SUCCESS(state, station) {\n let results = [...state.stations.results, station]\n state.stations = {...state.stations, results: results}\n },\n UPDATE_STATION_SUCCESS(state, station) {\n let results = state.stations.results.map(obj => obj.id == station.id ? station : obj)\n state.stations = {...state.stations, results: results}\n },\n DEL_STATION_SUCCESS(state, id){\n let results = state.stations.results.filter(obj => obj.id != id)\n state.stations = {...state.stations, results: results}\n },\n CLEAR_STATIONS(state){\n state.stations = {}\n },\n};","import { mapState, mapGetters, mapActions } from 'vuex'\n\nexport const authComputed = {\n ...mapState('auth', {\n currentUser: (state) => state.currentUser,\n }),\n ...mapGetters('auth', ['loggedIn', 'getOrgs', 'getWs', 'getWsMessage']),\n}\n\nexport const languageComputed = {\n ...mapGetters('language', ['getLanguage']),\n}\n\nexport const devicesComputed = {\n ...mapGetters('devices', ['getAllDevices', 'getDevices', 'getDevicesTransport', 'getDevice', 'getEvents', 'getInterventionDevice', 'getAquitDevice']),\n}\n\nexport const alertsComputed = {\n ...mapGetters('alerts', ['getAlerts', 'getSubAlerts', 'getNumberByType', 'getCountByMarqueRegion', 'getStatsByMarque']),\n}\n\nexport const configsAlertsComputed = {\n ...mapGetters('configsalerts', ['getConfigAlerts']),\n}\n\nexport const offlineAlertsComputed = {\n ...mapGetters('offlinealerts', ['getAlerts']),\n}\n\nexport const logsComputed = {\n ...mapGetters('logs', ['getLogs']),\n}\n\nexport const rafcComputed = {\n ...mapGetters('rafc', ['getRafc', 'getRafcNouaceur']),\n}\n\nexport const consolidatedComputed = {\n ...mapGetters('consolidated', ['getConsolidated']),\n}\n\nexport const regionsComputed = {\n ...mapGetters('regions', ['getRegions']),\n}\n\nexport const provincesComputed = {\n ...mapGetters('provinces', ['getProvinces']),\n}\n\nexport const statesComputed = {\n ...mapGetters('states', ['getStates']),\n}\n\nexport const vaccintypesComputed = {\n ...mapGetters('vaccintypes', ['getVaccintypes']),\n}\n\nexport const causesComputed = {\n ...mapGetters('causes', ['getCauses']),\n}\n\nexport const marquesComputed = {\n ...mapGetters('marques', ['getMarques']),\n}\n\nexport const actionsComputed = {\n ...mapGetters('actions', ['getActions']),\n}\n\nexport const operationsComputed = {\n ...mapGetters('operations', ['getOperations']),\n}\n\nexport const mtcEventsComputed = {\n ...mapGetters('mtcevents', ['getMtcEvents', 'getCountByMonths', 'getCountByMonthRegion', 'getCountByCurrentMonth']),\n}\n\nexport const interventionsComputed = {\n ...mapGetters('interventions', ['getInterventions', 'getCountByAction', 'getCountByTypeequip', 'getCountByMarque', 'getCountByRegion']),\n}\n\nexport const interventionsMobileComputed = {\n ...mapGetters('intervmobile', ['getInterventions', 'getInterventionImgData']),\n}\n\nexport const planificationsComputed = {\n ...mapGetters('planifications', ['getPlanifications']),\n}\n\nexport const materialsComputed = {\n ...mapGetters('materials', ['getMaterials']),\n}\n\nexport const centresComputed = {\n ...mapGetters('centres', ['getCentres']),\n}\n\nexport const interventionOperationsComputed = {\n ...mapGetters('interventionoperations', ['getInterventionOperations']),\n}\n\nexport const usersComputed = {\n ...mapGetters('users', ['getUsers', 'getUser', 'getAvatar']),\n}\n\nexport const stationsComputed = {\n ...mapGetters('stationshcplus', ['getStations']),\n}\n\nexport const homeComputed = {\n ...mapGetters('home', ['getData'])\n}\n\nexport const layoutComputed = {\n ...mapState('layout', {\n layoutType: (state) => state.layoutType,\n leftSidebarType: (state) => state.leftSidebarType,\n layoutWidth: (state) => state.layoutWidth,\n topbar: (state) => state.topbar,\n loader: (state) => state.loader\n })\n}\n\nexport const layoutMethods = mapActions('layout', ['changeLayoutType', 'changeLayoutWidth', 'changeLeftSidebarType', 'changeTopbar', 'changeLoaderValue'])\n\nexport const notificationMethods = mapActions('notification', ['success', 'error', 'clear'])\n\nexport const authMethods = mapActions('auth', ['login', 'registeruser', 'logout', 'resetPassword', 'changePassword', 'changeCurrentOrg', 'changeTokens'])\n\nexport const languageMethods = mapActions('language', ['changeLang'])\n\nexport const devicesMethods = mapActions('devices', ['getAllDevicesBy', 'getDevicesBy', 'exportAllDevicesXLS', 'exportDevicesXLS', 'getDevicesTransportBy', 'getDeviceInfos', 'getDeviceInfosBySerial', 'getEventsBy', 'addDevice', 'updateDevice', 'delDevice', 'interventionOffline', 'clearDevices', 'aquitDevice'])\n\nexport const alertsMethods = mapActions('alerts', ['getAlertsBy', 'getSubAlertsBy', 'getNumberByTypeBy', 'aquitAlert', 'aquitAlerts', 'aquitPartOfAlerts', 'exportXLSAlerts', 'getCountByMarqueRegionBy', 'getStatsByMarqueBy', 'clearAlerts'])\n\nexport const configAlertsMethods = mapActions('configsalerts', ['getConfigAlertsBy', 'addConfigAlert', 'updateConfigAlert', 'delConfigAlert', 'clearConfigAlerts'])\n\nexport const offlineAlertsMethods = mapActions('offlinealerts', ['getAlertsBy', 'aquitAlert', 'aquitAlerts', 'aquitPartOfAlerts', 'clearAlerts'])\n\nexport const logsMethods = mapActions('logs', ['getLogsBy', 'exportXLS', 'updateLog', 'clearLogs'])\n\nexport const rafcMethods = mapActions('rafc', ['getRafcBy', 'manageRAFC', 'clearRafc'])\n\nexport const consolidatedMethods = mapActions('consolidated', ['getConsolidatedBy', 'clearConsolidated'])\n\nexport const regionsMethods = mapActions('regions', ['getRegionsBy', 'addRegion', 'updateRegion', 'delRegion', 'clearRegions'])\n\nexport const statesMethods = mapActions('states', ['getStatesBy', 'addState', 'updateState', 'delState', 'clearStates'])\n\nexport const vaccintypesMethods = mapActions('vaccintypes', ['getVaccintypesBy', 'addVaccintype', 'updateVaccintype', 'delVaccintype', 'clearVaccintypes'])\n\nexport const causesMethods = mapActions('causes', ['getCausesBy', 'addCause', 'updateCause', 'delCause', 'clearCauses'])\n\nexport const marquesMethods = mapActions('marques', ['getMarquesBy', 'addMarque', 'updateMarque', 'delMarque', 'clearMarques'])\n\nexport const actionsMethods = mapActions('actions', ['getActionsBy', 'addAction', 'updateAction', 'delAction', 'clearActions'])\n\nexport const operationsMethods = mapActions('operations', ['getOperationsBy', 'addOperation', 'updateOperation', 'delOperation', 'clearOperations'])\n\nexport const mtcEventsMethods = mapActions('mtcevents', ['getMtcEventsBy', 'addMtcEvent', 'updateMtcEvent', 'delMtcEvent', 'getCountByMonthRegionBy', 'getCountByMonthsBy', 'getCountByCurrentMonthBy', 'clearMtcEvents'])\n\nexport const interventionsMethods = mapActions('interventions', ['getInterventionsBy', 'addIntervention', 'updateIntervention', 'delIntervention', 'getCountByActionBy', 'getCountByTypeequipBy','getCountByMarqueBy','getCountByRegionBy','clearInterventions'])\n\nexport const interventionsMobileMethods = mapActions('intervmobile', ['getInterventionsBy', 'addIntervention', 'updateIntervention', 'delIntervention', 'getInterventionImg', 'clearInterventions'])\n\nexport const planificationsMethods = mapActions('planifications', ['getPlanificationsBy', 'addPlanification', 'updatePlanification', 'delPlanification', 'uploadPlanifications', 'clearPlanifications'])\n\nexport const materialsMethods = mapActions('materials', ['getMaterialsBy', 'addMaterial', 'updateMaterial', 'delMaterial', 'clearMaterials'])\n\nexport const centresMethods = mapActions('centres', ['getCentresBy', 'addCentre', 'updateCentre', 'delCentre', 'clearCentres'])\n\nexport const interventionOperationsMethods = mapActions('interventionoperations', ['getInterventionOperationsBy', 'addInterventionOperation', 'updateInterventionOperation', 'delInterventionOperation', 'clearInterventionOperations'])\n\nexport const usersMethods = mapActions('users', ['getUsersBy', 'getUserInfos', 'addUser', 'updateUser', 'delUser', 'changePassword', 'updateAvatar', 'getAvatarControl', 'clearUsers'])\n\nexport const provincesMethods = mapActions('provinces', ['getProvincesBy', 'addProvince', 'updateProvince', 'delProvince', 'clearProvinces'])\n\nexport const stationsMethods = mapActions('stationshcplus', ['getStationsBy', 'addStation', 'updateStation', 'delStation', 'clearStations'])\n\nexport const homeMethods = mapActions('home', ['postInfos'])","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=108b1a3a\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport App from './App.vue'\nimport BootstrapVue from 'bootstrap-vue'\nimport Vuetify from 'vuetify'\nimport 'vuetify/dist/vuetify.min.css'\nimport VueApexCharts from 'vue-apexcharts'\nimport 'remixicon/fonts/remixicon.css'\nimport Highcharts from 'highcharts'\nimport HighchartsVue from 'highcharts-vue'\nimport stockInit from 'highcharts/modules/stock'\nimport stockExporting from 'highcharts/modules/exporting'\nimport stockDataExporting from 'highcharts/modules/export-data'\nimport stockNoData from 'highcharts/modules/no-data-to-display'\nimport Vuelidate from 'vuelidate'\nimport VueFullscreen from 'vue-fullscreen'\nimport VueSweetalert2 from 'vue-sweetalert2';\nimport VueMask from 'v-mask'\nimport * as VueGoogleMaps from 'vue2-google-maps'\nimport VueYoutube from 'vue-youtube'\n\nimport vco from \"v-click-outside\"\n\nimport router from './router'\nimport store from '@/state/store'\nimport i18n from './i18n'\nimport \"@/assets/scss/app.scss\";\n//import { Icon } from 'leaflet';\n\nimport \"leaflet.markercluster/dist/MarkerCluster.css\";\nimport \"leaflet.markercluster/dist/MarkerCluster.Default.css\";\n\nVue.config.productionTip = false\nVue.use(VueYoutube)\nVue.use(BootstrapVue)\nVue.use(Vuetify)\nVue.use(vco)\nVue.use(Vuelidate)\nVue.use(VueFullscreen)\nVue.use(VueSweetalert2);\nVue.use(VueMask)\nVue.use(require('vue-chartist'))\nVue.use(VueGoogleMaps, {\n load: {\n key: 'AIzaSyAbvyBxmMbFhrzP9Z8moyYr6dCr-pzjhBE',\n libraries: 'places',\n },\n installComponents: true\n})\nVue.component('apexchart', VueApexCharts)\n\nVue.use(HighchartsVue)\nstockInit(Highcharts)\nstockExporting(Highcharts)\nstockDataExporting(Highcharts)\nstockNoData(Highcharts)\n\n/* delete Icon.Default.prototype._getIconUrl;\nIcon.Default.mergeOptions({\n iconRetinaUrl: require('@/assets/images/position.png'),\n //iconUrl: require('leaflet/dist/images/marker-icon.png'),\n iconUrl: require(\"@/assets/images/position.png\"),\n iconSize: [31, 41],\n shadowSize: [41, 41],\n shadowUrl: require('leaflet/dist/images/marker-shadow.png'),\n}); */\n\n\nnew Vue({\n router,\n store,\n i18n,\n vuetify: new Vuetify(),\n render: h => h(App)\n}).$mount('#app')\n","const lang = localStorage.getItem('lang');\n\nexport const state = {\n language: lang ? lang : \"fr\",\n}\n\nexport const getters = {\n getLanguage(state){\n return state.language\n },\n}\n\nexport const actions = {\n\n changeLang({ commit }, lang) {\n commit(\"CHANGE_LANGUAGE\", lang)\n },\n};\n\nexport const mutations = {\n CHANGE_LANGUAGE(state, language){\n state.language = language;\n }\n};","import { API } from \"./axios\";\n\nexport const consolidatedService = {\n getConsolidated,\n};\n\n// Get Consolidated\n\nasync function getConsolidated() {\n try {\n const res = await API.get(`/events/devices`);\n return {\n ...res.data,\n loaderDashboard: false,\n }\n /* const res = {\n \"4546446487998efe87\": {\n region: {\n name: \"Tanger-Tetouan-Al Hoceima\"\n },\n event: {\n temp: 10,\n createdAt: \"2022-03-30T11:20:51.483+00:00\",\n }\n },\n \"4546446487998efe97\": {\n region: {\n name: \"Tanger-Tetouan-Al Hoceima\"\n },\n event: {\n temp: 8,\n createdAt: \"2022-05-04T11:25:51.483+00:00\",\n }\n },\n \"4546446487998efe07\": {\n region: {\n name: \"Oriental\"\n },\n event: {\n temp: 1,\n createdAt: \"2022-05-04T11:25:51.483+00:00\",\n }\n },\n \"4546446487998eff07\": {\n region: {\n name: \"Eddakhla-Oued Eddahab\"\n },\n event: {\n temp: 1,\n createdAt: \"2022-05-04T11:40:51.483+00:00\",\n }\n },\n \"4546446487998eff27\": {\n region: {\n name: \"Eddakhla-Oued Eddahab\"\n },\n event: {\n temp: 5,\n createdAt: \"2022-05-04T13:15:51.483+00:00\",\n }\n }\n }; \n return res;*/\n\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { consolidatedService } from '../../helpers/backend/consolidated.service';\n\nexport const state = {\n consolidated: {},\n}\n\nexport const getters = {\n getConsolidated(state) {\n return state.consolidated;\n },\n}\n\nexport const actions = {\n getConsolidatedBy({ commit }) {\n return consolidatedService.getConsolidated()\n .then(\n consolidated => {\n /* let keys = Object.keys(consolidated)\n keys.map(obj=>{\n if(consolidated[obj].event) console.log(consolidated[obj]);\n }) */\n commit(\"CONSOLIDATED_SUCCESS\", consolidated)\n return Promise.resolve(consolidated);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n clearRafc({ commit }) {\n commit(\"CLEAR_CONSOLIDATED_SUCCESS\")\n },\n}\n\nexport const mutations = {\n CONSOLIDATED_SUCCESS(state, consolidated) {\n state.consolidated = consolidated;\n },\n CLEAR_CONSOLIDATED_SUCCESS(state) {\n state.consolidated = {};\n },\n}","import axios from \"axios\";\nimport store from '@/state/store'\n//import router from '../../router/index'\nimport env from \"../../utils/env\"\n\nexport const API = axios.create({\n baseURL: env.base_url,\n headers: {\n 'Content-Type': 'application/json',\n },\n});\n\n// Add a request interceptor\n\nAPI.interceptors.request.use(\n config => {\n /* const user = store.getters['auth/loggedIn'] */\n const user = localStorage.getItem('user');\n const userParse = JSON.parse(user);\n const token = userParse.tokens.accessToken;\n if (token) {\n config.headers['Authorization'] = \"Bearer \" + token;\n }\n return config;\n },\n error => {\n return error\n });\n\n\n\n//Add a response interceptor\n\nAPI.interceptors.response.use((response) => {\n return response\n}, async function (error) {\n const user = localStorage.getItem('user');\n const userParse = JSON.parse(user);\n const originalRequest = error.config;\n if (error.response.status === 401 && !originalRequest._retry) {\n originalRequest._retry = true;\n const refreshToken = userParse.tokens.refreshToken;\n try{\n const res = await axios.post(env.base_url + '/auth/refresh-tokens',\n {\n \"refreshToken\": refreshToken\n })\n if (res.status === 200) {\n store.dispatch('auth/changeTokens', {\n accessToken: res.data.access.token,\n refreshToken: res.data.refresh.token\n })\n localStorage.setItem('user', JSON.stringify({\n ...userParse,\n tokens: {\n accessToken: res.data.access.token,\n refreshToken: res.data.refresh.token\n }\n }));\n //API.defaults.headers.common['Authorization'] = 'Bearer ' + res.data.access.token;\n return API(originalRequest);\n }\n\n }catch(err){\n if (error.response.status === 401) {\n localStorage.removeItem(\"user\");\n location.href = \"/logout\"\n }\n }\n }\n return Promise.reject(error);\n}); \n\n","// Register each file as a corresponding Vuex module. Module nesting\n// will mirror [sub-]directory hierarchy and modules are namespaced\n// as the camelCase equivalent of their file name.\n\nimport camelCase from 'lodash/camelCase'\n\nconst modulesCache = {}\nconst storeData = { modules: {} }\n\n;(function updateModules() {\n // Allow us to dynamically require all Vuex module files.\n // https://webpack.js.org/guides/dependency-management/#require-context\n const requireModule = require.context(\n // Search for files in the current directory.\n '.',\n // Search for files in subdirectories.\n true,\n // Include any .js files that are not this file or a unit test.\n /^((?!index|\\.unit\\.).)*\\.js$/\n )\n\n // For every Vuex module...\n requireModule.keys().forEach((fileName) => {\n const moduleDefinition = requireModule(fileName)\n\n // Skip the module during hot reload if it refers to the\n // same module definition as the one we have cached.\n if (modulesCache[fileName] === moduleDefinition) return\n\n // Update the module cache, for efficient hot reloading.\n modulesCache[fileName] = moduleDefinition\n\n // Get the module path as an array.\n const modulePath = fileName\n // Remove the \"./\" from the beginning.\n .replace(/^\\.\\//, '')\n // Remove the file extension from the end.\n .replace(/\\.\\w+$/, '')\n // Split nested modules into an array path.\n .split(/\\//)\n // camelCase all module namespaces and names.\n .map(camelCase)\n\n // Get the modules object for the current path.\n const { modules } = getNamespace(storeData, modulePath)\n\n // Add the module to our modules object.\n modules[modulePath.pop()] = {\n // Modules are namespaced by default.\n namespaced: true,\n ...moduleDefinition,\n }\n })\n\n // If the environment supports hot reloading...\n if (module.hot) {\n // Whenever any Vuex module is updated...\n module.hot.accept(requireModule.id, () => {\n // Update `storeData.modules` with the latest definitions.\n updateModules()\n // Trigger a hot update in the store.\n require('../store').default.hotUpdate({ modules: storeData.modules })\n })\n }\n})()\n\n// Recursively get the namespace of a Vuex module, even if nested.\nfunction getNamespace(subtree, path) {\n if (path.length === 1) return subtree\n\n const namespace = path.shift()\n subtree.modules[namespace] = {\n modules: {},\n namespaced: true,\n ...subtree.modules[namespace],\n }\n return getNamespace(subtree.modules[namespace], path)\n}\n\nexport default storeData.modules\n","import Vue from 'vue'\nimport Vuex from 'vuex'\n\nimport modules from './modules'\n\nVue.use(Vuex)\n\nconst store = new Vuex.Store({\n modules,\n // Enable strict mode in development to get a warning\n // when mutating state outside of a mutation.\n // https://vuex.vuejs.org/guide/strict.html\n strict: process.env.NODE_ENV !== 'production',\n})\n\nexport default store\n\n","import Vue from 'vue'\nimport VueI18n from 'vue-i18n'\n\nimport store from '@/state/store';\nlet language = store.getters['language/getLanguage']\n\nVue.use(VueI18n)\n\nfunction loadLocaleMessages () {\n const locales = require.context('./locales', true, /[A-Za-z0-9-_,\\s]+\\.json$/i)\n const messages = {}\n locales.keys().forEach(key => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n if (matched && matched.length > 1) {\n const locale = matched[1]\n messages[locale] = locales(key)\n }\n })\n return messages\n}\n\nexport default new VueI18n({\n locale: language || process.env.VUE_APP_I18N_LOCALE || 'fr',\n fallbackLocale: language || process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'fr',\n messages: loadLocaleMessages()\n})\n","import { API } from \"./axios\";\n\nexport const logsService = {\n getLogs,\n exportXLS,\n updateLog,\n};\n\n// ####################################################################### Get Logs\n\nasync function getLogs(params) {\n try {\n const res = await API.get(`/logs?populate=region,province,user,action,operation,cause,state`, { params: params });\n return {\n ...res.data,\n loaderDashboard: false,\n from: params.from || \"\",\n to: params.to || \"\",\n }\n\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### Export Logs XLS\n\nasync function exportXLS(params) {\n try {\n const res = await API.get(`/logs/export`, {\n params: params,\n responseType: \"blob\"\n });\n return res;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE LOG\n\nasync function updateLog(params) {\n try {\n let filtredParams = {\n action: params.action,\n operation: params.operation,\n cause: params.cause,\n savedDoses: params.savedDoses,\n note: params.note,\n };\n const res = await API.patch(`/logs/${params.logId}`, filtredParams);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { logsService } from '../../helpers/backend/logs.service';\n\nexport const state = {\n logs: {},\n export: {},\n}\n\nexport const getters = {\n getLogs(state) {\n return state.logs;\n },\n}\n\nexport const actions = {\n getLogsBy({ commit }, params) {\n let more = params.more;\n delete params.more;\n return logsService.getLogs(params)\n .then(\n logs => {\n if (more == true && params.page != 1) {\n commit(\"LOGS_MORE_SUCCESS\", logs)\n } else {\n commit(\"LOGS_SUCCESS\", logs)\n }\n return Promise.resolve(logs);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n exportXLS({commit}, params) {\n return logsService.exportXLS(params)\n .then(\n res => {\n if(res.status !== 204){\n const url = window.URL.createObjectURL(new Blob([res.data]));\n const link = document.createElement('a');\n link.href = url;\n if(params.serial) link.setAttribute('download', `logs--${params.from}-${params.to} ${params.serial}.xlsx`);\n else link.setAttribute('download', `logs--${params.from}-${params.to}.xlsx`);\n document.body.appendChild(link);\n link.click();\n commit(\"EXPORT_SUCCESS\", res)\n return Promise.resolve({status: true});\n }else{\n return Promise.resolve({status: false});\n }\n \n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n updateLog({ commit }, params) {\n return logsService.updateLog(params)\n .then(\n log => {\n commit(\"UPDATE_LOG_SUCCESS\", log)\n return Promise.resolve(log);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearLogs({ commit }) {\n commit(\"CLEAR_LOGS_SUCCESS\")\n },\n}\n\nexport const mutations = {\n LOGS_SUCCESS(state, logs) {\n state.logs = logs;\n },\n EXPORT_SUCCESS(state, res) {\n state.export = res;\n },\n UPDATE_LOG_SUCCESS(state, log) {\n if (state.logs.results) {\n let results = state.logs.results.map(obj => obj.id == log.id ? log : obj)\n state.logs = { ...state.logs, results: results }\n }\n },\n LOGS_MORE_SUCCESS(state, logs) {\n if (state.logs.results) {\n let results = state.logs.results.concat(logs.results)\n state.logs = { ...state.logs, results: results }\n } else {\n state.logs = logs;\n }\n },\n CLEAR_LOGS_SUCCESS(state) {\n state.logs = {};\n },\n}","import {API} from \"./axios\";\n\nexport const causesService = {\n addCause,\n updateCause,\n getCauses,\n delCause\n};\n\n// ####################################################################### ADD CAUSE\n\nasync function addCause(params) {\n try{\n const res = await API.post(`/causes/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE CAUSE\n\nasync function updateCause(params) {\n try{\n const res = await API.patch(`/causes/${params.causeId}`, {name: params.name, type: params.type});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE CAUSE\n\nasync function delCause(id) {\n\n try{\n const res = await API.delete(`/causes/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"cause Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET CAUSES\n\nasync function getCauses(params){\n try{\n const res = await API.get(`/causes`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { causesService } from '../../helpers/backend/causes.service';\n\nexport const state = {\n causes: {},\n}\n\nexport const getters = {\n getCauses(state){\n return state.causes\n },\n}\n\nexport const actions = {\n\n addCause({ commit }, params) {\n return causesService.addCause(params)\n .then(\n cause => {\n commit(\"ADD_CAUSE_SUCCESS\", cause)\n return Promise.resolve(cause);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateCause({ commit }, params) {\n return causesService.updateCause(params)\n .then(\n cause => {\n commit(\"UPDATE_CAUSE_SUCCESS\", cause)\n return Promise.resolve(cause);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delCause({ commit }, id) {\n return causesService.delCause(id)\n .then(\n cause => {\n commit(\"DEL_CAUSE_SUCCESS\", id)\n return Promise.resolve(cause);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getCausesBy({ commit }, params) {\n return causesService.getCauses(params)\n .then(\n causes => {\n commit(\"GET_CAUSES_SUCCESS\", causes);\n return Promise.resolve(causes)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearCauses({ commit }) {\n commit(\"CLEAR_CAUSES\")\n }\n};\n\nexport const mutations = {\n GET_CAUSES_SUCCESS(state, causes) {\n state.causes = causes;\n },\n ADD_CAUSE_SUCCESS(state, cause) {\n let results = [...state.causes.results, cause]\n state.causes = {...state.causes, results: results}\n },\n UPDATE_CAUSE_SUCCESS(state, cause) {\n let results = state.causes.results.map(obj => obj.id == cause.id ? cause : obj)\n state.causes = {...state.causes, results: results}\n },\n DEL_CAUSE_SUCCESS(state, id){\n let results = state.causes.results.filter(obj => obj.id != id)\n state.causes = {...state.causes, results: results}\n },\n CLEAR_CAUSES(state){\n state.causes = {}\n },\n};","import store from '@/state/store'\nexport default [\n { path: \"*\", component: () => import('../views/pages/utility/error-404') },\n {\n path: '/login',\n name: 'login',\n component: () => import('../views/pages/account/login'),\n meta: {\n beforeResolve(routeTo, routeFrom, next) {\n // If the user is already logged in\n if (store.getters['auth/loggedIn']) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n // Continue to the login page\n next()\n }\n },\n },\n },\n {\n path: '/register',\n name: 'register',\n component: () => import('../views/pages/account/register'),\n meta: {\n beforeResolve(routeTo, routeFrom, next) {\n // If the user is already logged in\n if (store.getters['auth/loggedIn']) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n // Continue to the register page\n next()\n }\n },\n },\n },\n {\n path: '/forgot-password',\n name: 'Forgot-password',\n component: () => import('../views/pages/account/forgot-password'),\n meta: {\n beforeResolve(routeTo, routeFrom, next) {\n // If the user is already logged in\n if (store.getters['auth/loggedIn']) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n // Continue to the forgot-password page\n next()\n }\n },\n },\n },\n {\n path: '/reset-password',\n name: 'Reset-password',\n component: () => import('../views/pages/account/new-password'),\n meta: {\n beforeResolve(routeTo, routeFrom, next) {\n // If the user is already logged in\n if (store.getters['auth/loggedIn']) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n // Continue to the reset page\n next()\n }\n },\n },\n },\n {\n path: '/logout',\n name: 'logout',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n\n const user = JSON.parse(localStorage.getItem('user'));\n let refreshToken = user.tokens.refreshToken;\n /* localStorage.removeItem(\"user\");\n next({ name: 'login' }) */\n store.dispatch('auth/logout', {\n refreshToken: refreshToken\n }).then(() => {\n localStorage.removeItem(\"user\");\n next({ name: 'login' })\n })\n .catch((error)=>{\n localStorage.removeItem(\"user\");\n if(error.response.status == '404'){\n location.href = \"/login\"\n }\n })\n },\n },\n },\n {\n path: '/',\n name: 'home',\n meta: {\n authRequired: true,\n },\n component: () => import('../views/pages/storage/index')\n },\n {\n path: '/transport',\n name: 'transport',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/transport/index')\n },\n {\n path: '/consolidated',\n name: 'consolidated',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/consolidated/index')\n },\n {\n path: '/consolidated-region/:region/:state',\n name: 'consolidated-region',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/consolidated-region/index')\n },\n {\n path: '/consolidated-province/:province/:state',\n name: 'consolidated-province',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/consolidated-province/index')\n },\n {\n path: '/rafc',\n name: 'rafc',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/rafc/index')\n },\n {\n path: '/super-congelateur',\n name: 'super-congelateur',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/rafc-negatif/index')\n },\n {\n path: '/health-centers',\n name: 'health-centers',\n meta: {\n beforeResolve(routeTo, routeFrom, next) {\n // If the user is already logged in\n if (store.getters['auth/loggedIn']) {\n // Redirect to the home page instead\n next()\n } else {\n // Continue to the reset page\n next()\n }\n },\n },\n component: () => import('../views/pages/health-centers/index')\n },\n {\n path: '/vaccinTypes',\n name: 'vaccin-types',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/vaccinTypes/index')\n },\n {\n path: '/agences-bank',\n name: 'agences-bank',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/agences-banques/index')\n },\n {\n path: '/equipments',\n name: 'equipments',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/equipments/index')\n },\n {\n path: '/devices',\n name: 'devices',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/devices/index')\n },\n {\n path: '/devices/:serial',\n name: 'device',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/device/index')\n },\n {\n path: '/contact',\n name: 'contact',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/contact/index')\n },\n {\n path: '/alerts',\n name: 'alerts',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/alerts/index')\n },\n {\n path: '/nonc-alerts',\n name: 'alerts non conformes',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/alerts-nonc/index')\n },\n {\n path: '/defec-alerts',\n name: 'alerts défectueux',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/alerts-defectueux/index')\n },\n {\n path: '/last-alerts',\n name: 'derniers alerts',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/alerts-last/index')\n },\n {\n path: '/multiple-devices',\n name: 'multiple-devices',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/multiple-devices-events/index')\n },\n {\n path: '/offline-alerts',\n name: 'Offline alerts',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/offlinealerts/index')\n },\n {\n path: '/logs',\n name: 'logs',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/logs/index')\n },\n {\n path: '/offline',\n name: 'offline',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/offline/index')\n },\n {\n path: '/offline-e',\n name: 'offline-e',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/offline-e/index')\n },\n {\n path: '/regions',\n name: 'regions',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/regions/index')\n },\n {\n path: '/provinces',\n name: 'provinces',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/provinces/index')\n },\n {\n path: '/states',\n name: 'states',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/states/index')\n },\n {\n path: '/stock-type',\n name: 'stock-type',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/stock-type/index')\n },\n {\n path: '/causes',\n name: 'causes',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/causes/index')\n },\n {\n path: '/marques',\n name: 'marques',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/marques/index')\n },\n {\n path: '/actions',\n name: 'actions',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/actions/index')\n },\n {\n path: '/configsalerts',\n name: 'configsalerts',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/alerts-configs/index')\n },\n {\n path: '/vaccins',\n name: 'vaccins',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/vaccins/index')\n },\n {\n path: '/users',\n name: 'users',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/users/index')\n },\n {\n path: '/profile',\n name: 'profile',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/profile/index')\n },\n {\n path: '/maintenance',\n name: 'maintenance',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/maintenance/index')\n },\n {\n path: '/interventions',\n name: 'interventions',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/interventions/index')\n },\n {\n path: '/interventions-mobile',\n name: 'interventions-mobile',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/interventions-mobile/index')\n },\n {\n path: '/planifications',\n name: 'planifications',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/planifications/index')\n },\n {\n path: '/materials',\n name: 'materials',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/materials/index')\n },\n {\n path: '/centres',\n name: 'centres',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/centres/index')\n },\n {\n path: '/stationshcplus',\n name: 'stationshcplus',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/stations-hcplus/index')\n },\n {\n path: '/poste-maroc',\n name: 'poste-maroc',\n meta: {\n authRequired: false,\n },\n component: () => import('../views/pages/poste-maroc/index')\n },\n]\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport VueMeta from 'vue-meta'\n\nimport store from '@/state/store'\nimport routes from './routes'\n\nVue.use(VueRouter)\nVue.use(VueMeta, {\n // The component option name that vue-meta looks for meta info on.\n keyName: 'page',\n})\n\nconst router = new VueRouter({\n routes,\n // Use the HTML5 history API (i.e. normal-looking routes)\n // instead of routes with hashes (e.g. example.com/#/about).\n // This may require some server configuration in production:\n // https://router.vuejs.org/en/essentials/history-mode.html#example-server-configurations\n mode: 'history',\n // Simulate native-like scroll behavior when navigating to a new\n // route and using back/forward buttons.\n scrollBehavior(to, from, savedPosition) {\n if (savedPosition) {\n return savedPosition\n } else {\n return { x: 0, y: 0 }\n }\n },\n})\n\n// Before each route evaluates...\nrouter.beforeEach((routeTo, routeFrom, next) => {\n if (process.env.VUE_APP_DEFAULT_AUTH === \"firebase\") {\n // Check if auth is required on this route\n // (including nested routes).\n const authRequired = routeTo.matched.some((route) => route.meta.authRequired)\n\n // If auth isn't required for the route, just continue.\n if (!authRequired) return next()\n\n // If auth is required and the user is logged in...\n if (store.getters['auth/loggedIn']) {\n // Validate the local user token...\n return store.dispatch('auth/validate').then((validUser) => {\n // Then continue if the token still represents a valid user,\n // otherwise redirect to login.\n validUser ? next() : redirectToLogin()\n })\n }\n\n // If auth is required and the user is NOT currently logged in,\n // redirect to login.\n redirectToLogin()\n\n // eslint-disable-next-line no-unused-vars\n // eslint-disable-next-line no-inner-declarations\n function redirectToLogin() {\n // Pass the original route to the login component\n next({ name: 'login', query: { redirectFrom: routeTo.fullPath } })\n }\n } else {\n const publicPages = ['/login', '/register', '/forgot-password', '/reset-password', '/health-centers', '/poste-maroc'];\n const authpage = !publicPages.includes(routeTo.path);\n const loggeduser = localStorage.getItem('user');\n\n if (authpage && !loggeduser) {\n return next('/login');\n }\n\n next();\n }\n})\n\nrouter.beforeResolve(async (routeTo, routeFrom, next) => {\n // Create a `beforeResolve` hook, which fires whenever\n // `beforeRouteEnter` and `beforeRouteUpdate` would. This\n // allows us to ensure data is fetched even when params change,\n // but the resolved route does not. We put it in `meta` to\n // indicate that it's a hook we created, rather than part of\n // Vue Router (yet?).\n try {\n // For each matched route...\n for (const route of routeTo.matched) {\n await new Promise((resolve, reject) => {\n // If a `beforeResolve` hook is defined, call it with\n // the same arguments as the `beforeEnter` hook.\n if (route.meta && route.meta.beforeResolve) {\n route.meta.beforeResolve(routeTo, routeFrom, (...args) => {\n // If the user chose to redirect...\n if (args.length) {\n // If redirecting to the same route we're coming from...\n // Complete the redirect.\n next(...args)\n reject(new Error('Redirected'))\n } else {\n resolve()\n }\n })\n } else {\n // Otherwise, continue resolving the route.\n resolve()\n }\n })\n }\n // If a `beforeResolve` hook chose to redirect, just return.\n } catch (error) {\n return\n }\n\n // If we reach this point, continue resolving the route.\n next()\n})\n\nexport default router\n","import {API} from \"./axios\";\n\nexport const planificationsService = {\n addPlanification,\n updatePlanification,\n getPlanifications,\n delPlanification,\n uploadPlanifications\n};\n\n// ####################################################################### ADD PLANIFICATION\n\nasync function addPlanification(params) {\n try{\n const res = await API.post(`/planifications/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE PLANIFICATION\n\nasync function updatePlanification(params) {\n try{\n const res = await API.patch(`/planifications/${params.planificationId}`, {date: params.date});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE PLANIFICATION\n\nasync function delPlanification(id) {\n\n try{\n const res = await API.delete(`/planifications/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"planification Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET PLANIFICATIONS\n\nasync function getPlanifications(params){\n try{\n const res = await API.get(`/planifications`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nasync function uploadPlanifications(params) {\n try{\n console.log(\"data\",params);\n const res = await API.post(`/planifications/upload`, params,\n {\n headers: {\n 'Content-Type': 'multipart/form-data'\n },\n responseType: 'blob'\n });\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { planificationsService } from '../../helpers/backend/planifications.service';\n\nexport const state = {\n planifications: {},\n upload: null\n}\n\nexport const getters = {\n getPlanifications(state) {\n return state.planifications\n },\n}\n\nexport const actions = {\n\n addPlanification({ commit }, params) {\n return planificationsService.addPlanification(params)\n .then(\n planification => {\n commit(\"ADD_PLANIFICATION_SUCCESS\", planification)\n return Promise.resolve(planification);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updatePlanification({ commit }, params) {\n return planificationsService.updatePlanification(params)\n .then(\n planification => {\n commit(\"UPDATE_PLANIFICATION_SUCCESS\", planification)\n return Promise.resolve(planification);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delPlanification({ commit }, id) {\n return planificationsService.delPlanification(id)\n .then(\n planification => {\n commit(\"DEL_PLANIFICATION_SUCCESS\", id)\n return Promise.resolve(planification);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getPlanificationsBy({ commit }, params) {\n return planificationsService.getPlanifications(params)\n .then(\n planifications => {\n commit(\"GET_PLANIFICATIONS_SUCCESS\", planifications);\n return Promise.resolve(planifications)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n uploadPlanifications({ commit }, params) {\n return planificationsService.uploadPlanifications(params)\n .then(\n result => {\n commit(\"UPLOAD_PLANIFICATION_SUCCESS\", result);\n return Promise.resolve(result);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearPlanifications({ commit }) {\n commit(\"CLEAR_PLANIFICATIONS\")\n }\n};\n\nexport const mutations = {\n GET_PLANIFICATIONS_SUCCESS(state, planifications) {\n state.planifications = planifications;\n },\n UPLOAD_PLANIFICATION_SUCCESS(state, result) {\n state.upload = result;\n },\n ADD_PLANIFICATION_SUCCESS(state, planification) {\n let results = [planification, ...state.planifications.results]\n state.planifications = {...state.planifications, results: results}\n },\n UPDATE_PLANIFICATION_SUCCESS(state, planification) {\n let results = state.planifications.results.map(obj => obj.id == planification.id ? planification : obj)\n state.planifications = {...state.planifications, results: results}\n },\n DEL_PLANIFICATION_SUCCESS(state, id) {\n let results = state.planifications.results.filter(obj => obj.id != id)\n state.planifications = {...state.planifications, results: results}\n },\n CLEAR_PLANIFICATIONS(state) {\n state.planifications = {}\n },\n};","import { API } from \"./axios\";\n\nexport const alertsService = {\n getAlerts,\n aquitAlert,\n aquitAlerts,\n};\n\n// Get Alerts\n\nasync function getAlerts(params) {\n try {\n const res = await API.post(`/offline-alerts`, params);\n return {\n ...res.data,\n loaderDashboard: false,\n from: params.from || \"\",\n to: params.to || \"\",\n }\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nasync function aquitAlert(params) {\n try {\n const res = await API.patch(`/offline-alerts/${params.serial}`, {\n state: params.state,\n action: params.action,\n operation: params.operation,\n cause: params.cause,\n savedDoses: params.savedDoses,\n hours: params.hours,\n dateAquit: params.createdAt,\n note: params.note,\n });\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nasync function aquitAlerts(params) {\n try {\n const res = await API.post(`/offline-alerts/all`, {\n devices: params.devices,\n state: params.state,\n action: params.action,\n operation: params.operation,\n cause: params.cause,\n savedDoses: params.savedDoses,\n hours: params.hours,\n note: params.note,\n });\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { alertsService } from '../../helpers/backend/offlinealerts.service';\n\nexport const state = {\n alerts: {},\n states: {},\n causes: {},\n actions: {},\n}\n\nexport const getters = {\n getAlerts(state) {\n return state.alerts;\n },\n}\n\nexport const actions = {\n getAlertsBy({ commit }, params) {\n return alertsService.getAlerts(params)\n .then(\n alerts => {\n commit(\"ALERTS_SUCCESS\", alerts)\n return Promise.resolve(alerts);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n aquitAlert({ commit }, params) {\n return alertsService.aquitAlert(params)\n .then(\n device => {\n commit(\"AQUIT_ALERT_SUCCESS\", device)\n return Promise.resolve(device);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n aquitAlerts({ commit }, params) {\n return alertsService.aquitAlerts(params)\n .then(\n response => {\n if (response.closed) {\n return Promise.resolve({ closed: true });\n } else {\n commit(\"AQUIT_ALERTS_SUCCESS\", response)\n return Promise.resolve(response);\n }\n\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n aquitPartOfAlerts({ commit }, params) {\n return alertsService.aquitAlerts(params)\n .then(\n response => {\n if (response.closed) {\n commit(\"AQUIT_PART_OF_ALERTS_SUCCESS\", response)\n return Promise.resolve(params.serials);\n } else {\n commit(\"AQUIT_ALERTS_SUCCESS\", response)\n return Promise.resolve(response);\n }\n\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n clearAlerts({ commit }) {\n commit(\"CLEAR_ALERTS_SUCCESS\")\n },\n}\n\nexport const mutations = {\n ALERTS_SUCCESS(state, alerts) {\n state.alerts = alerts;\n },\n\n CLEAR_ALERTS_SUCCESS(state) {\n state.alerts = {};\n },\n\n AQUIT_ALERT_SUCCESS(state, device) {\n let newResults = []\n let alerts = device.alerts.map((obj) => {\n return obj.id;\n })\n if (device.closed) {\n newResults = state.alerts.results.filter(obj => !alerts.includes(obj.id))\n } else {\n newResults = state.alerts.results.map(obj => (alerts.includes(obj.id)) ? { ...obj, state: device.state } : obj)\n }\n state.alerts = { ...state.alerts, results: newResults }\n },\n AQUIT_ALERTS_SUCCESS(state, data) {\n let alerts = data.alerts.map((obj) => {\n return obj.id;\n })\n let newResults = state.alerts.results.map(obj => {\n if (data.alerts) {\n if (alerts.includes(obj.id)) {\n return { ...obj, state: data.state };\n }\n else return obj;\n } else {\n return { ...obj, state: data.state };\n }\n\n })\n state.alerts = { ...state.alerts, results: newResults }\n },\n AQUIT_PART_OF_ALERTS_SUCCESS(state, response) {\n let newResults = []\n let alerts = response.alerts.map((obj) => {\n return obj.id;\n })\n state.alerts.results.map(obj => {\n if (!alerts.includes(obj.id)) {\n newResults.push(obj)\n }\n })\n state.alerts = { ...state.alerts, results: newResults }\n }\n}","import { API } from \"./axios\";\n\nexport const usersService = {\n addUser,\n updateUser,\n delUser,\n getUsers,\n getUser,\n changePassword,\n updateAvatar,\n getAvatar,\n};\n\n// ####################################################################### ADD USER\n\nasync function addUser(params) {\n try {\n let filtredParams = {\n fullName: params.name,\n email: params.email,\n role: params.role,\n password: params.password,\n };\n const res = await API.post(`/users/`, filtredParams);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '409') {\n return Promise.reject(\"User already exists !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE USER\n\nasync function updateUser(params) {\n try {\n let filtredParams = {\n fullName: params.name,\n email: params.email,\n role: params.role,\n };\n const res = await API.patch(`/users/${params.userId}`, filtredParams);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### Delete User\n\nasync function delUser(id) {\n\n try {\n const res = await API.delete(`/users/${id}`);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '404') {\n return Promise.reject(\"User Not Found !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n// ####################################################################### GET USERS\n\nasync function getUsers(params) {\n try {\n const res = await API.get(`/users`, { params: params });\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n// ####################################################################### GET USER\n\nasync function getUser(params) {\n try {\n const res = await API.get(`/users/${params.userId}`);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### CHANGE PASSWORD\n\nasync function changePassword(params) {\n try {\n const res = await API.patch(`/users/changePassword/${params.userId}`,\n {\n oldPassword: params.oldPassword,\n newPassword: params.newPassword\n });\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '409') {\n return Promise.reject(\"Incorrect password !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE AVATAR\n\nasync function updateAvatar(params) {\n try {\n const res = await API.patch(`/pictures/${params.userId}`,\n params.avatar,\n {\n headers: {\n 'Content-Type': 'multipart/form-data'\n },\n responseType: 'blob'\n });\n //return res.data;\n const urlCreator = window.URL || window.webkitURL\n return urlCreator.createObjectURL(res.data)\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '409') {\n return Promise.reject(\"Incorrect password !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET AVATAR\n\nasync function getAvatar(params) {\n try {\n const res = await API.get(`/pictures/${params.userId}`, {\n headers:{\n 'content-type': 'image/png',\n 'accept': 'image/png'\n },\n \n responseType: 'blob'\n });\n //return 'data:image/png;base64,'+ btoa(res.data);\n const urlCreator = window.URL || window.webkitURL\n return urlCreator.createObjectURL(res.data)\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n }else if (err.response.status == '404') {\n return Promise.reject(\"Not found !\");\n } else if (err.response.status == '409') {\n return Promise.reject(\"Incorrect password !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { usersService } from '../../helpers/backend/users.service';\n\nexport const state = {\n users: {},\n user: {},\n userPassword: {},\n userAvatar: null,\n}\n\nexport const getters = {\n getUsers(state) {\n return state.users;\n },\n getUser(state){\n return state.user;\n },\n getAvatar(state){\n return state.userAvatar;\n }\n}\n\nexport const actions = {\n getUsersBy({ commit }, params) {\n return usersService.getUsers(params)\n .then(\n users => {\n commit(\"USERS_SUCCESS\", users)\n return Promise.resolve(users);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getUserInfos({ commit }, params) {\n return usersService.getUser(params)\n .then(\n device => {\n commit(\"USER_SUCCESS\", device);\n return Promise.resolve(device);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n addUser({ commit }, params) {\n return usersService.addUser(params)\n .then(\n user => {\n commit(\"ADD_USER_SUCCESS\", user)\n return Promise.resolve(user);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateUser({ commit }, params) {\n return usersService.updateUser(params)\n .then(\n user => {\n commit(\"UPDATE_USER_SUCCESS\", user)\n return Promise.resolve(user);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delUser({ commit }, id) {\n return usersService.delUser(id)\n .then(\n user => {\n commit(\"DEL_USER_SUCCESS\", id)\n return Promise.resolve(user);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n changePassword({ commit }, params){\n return usersService.changePassword(params)\n .then(\n user => {\n commit(\"CHANGE_PASSWORD_SUCCESS\", user)\n return Promise.resolve(user);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateAvatar({ commit }, params){\n return usersService.updateAvatar(params)\n .then(\n avatar => {\n commit(\"AVATAR_SUCCESS\", avatar)\n return Promise.resolve(avatar);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getAvatarControl({ commit }, params) {\n return usersService.getAvatar(params)\n .then(\n avatar => {\n commit(\"AVATAR_SUCCESS\", avatar);\n return Promise.resolve(avatar);\n },\n error => {\n commit(\"AVATAR_FAILED\");\n return Promise.reject(error)\n }\n );\n },\n\n clearUsers({ commit }) {\n commit(\"CLEAR_USERS_SUCCESS\")\n },\n}\n\nexport const mutations = {\n USERS_SUCCESS(state, users) {\n state.users = users;\n },\n\n USER_SUCCESS(state, device) {\n state.device = device;\n },\n\n ADD_USER_SUCCESS(state, user) {\n let results = [...state.users.results, user]\n state.users = { ...state.users, results: results }\n },\n UPDATE_USER_SUCCESS(state, user) {\n let results = state.users.results.map(obj => obj.id == user.id ? user : obj)\n state.users = { ...state.users, results: results }\n },\n DEL_USER_SUCCESS(state, id) {\n let results = state.users.results.filter(obj => obj.id != id)\n state.users = { ...state.users, results: results }\n },\n CHANGE_PASSWORD_SUCCESS(state, user){\n state.userPassword = user;\n },\n\n AVATAR_SUCCESS(state, avatar){\n state.userAvatar = avatar;\n },\n AVATAR_FAILED(state){\n state.userAvatar = null;\n },\n\n CLEAR_USERS_SUCCESS(state) {\n state.users = {};\n },\n}","import {API} from \"./axios\";\n\nexport const vaccintypesService = {\n addVaccintype,\n updateVaccintype,\n getVaccintypes,\n delVaccintype\n};\n\n// ####################################################################### ADD Vaccintype\n\nasync function addVaccintype(params) {\n try{\n const res = await API.post(`/vaccintypes/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE Vaccintype\n\nasync function updateVaccintype(params) {\n try{\n const res = await API.patch(`/vaccintypes/${params.vaccintypeId}`, {\n name: params.name,\n isClosed: params.isClosed,\n });\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE Vaccintype\n\nasync function delVaccintype(id) {\n\n try{\n const res = await API.delete(`/vaccintypes/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"vaccintype Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET Vaccintypes\n\nasync function getVaccintypes(params){\n try{\n const res = await API.get(`/vaccintypes`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { vaccintypesService } from '../../helpers/backend/vaccintypes.service';\n\nexport const state = {\n vaccintypes: {},\n}\n\nexport const getters = {\n getVaccintypes(state){\n return state.vaccintypes\n },\n}\n\nexport const actions = {\n\n addVaccintype({ commit }, params) {\n return vaccintypesService.addVaccintype(params)\n .then(\n vaccintype => {\n commit(\"ADD_VACCINTYPE_SUCCESS\", vaccintype)\n return Promise.resolve(vaccintype);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateVaccintype({ commit }, params) {\n return vaccintypesService.updateVaccintype(params)\n .then(\n vaccintype => {\n commit(\"UPDATE_VACCINTYPE_SUCCESS\", vaccintype)\n return Promise.resolve(vaccintype);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delVaccintype({ commit }, id) {\n return vaccintypesService.delVaccintype(id)\n .then(\n vaccintype => {\n commit(\"DEL_VACCINTYPE_SUCCESS\", id)\n return Promise.resolve(vaccintype);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getVaccintypesBy({ commit }, params) {\n return vaccintypesService.getVaccintypes(params)\n .then(\n vaccintypes => {\n commit(\"GET_VACCINTYPES_SUCCESS\", vaccintypes);\n return Promise.resolve(vaccintypes)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearVaccintypes({ commit }) {\n commit(\"CLEAR_VACCINTYPES\")\n }\n};\n\nexport const mutations = {\n GET_VACCINTYPES_SUCCESS(state, vaccintypes) {\n state.vaccintypes = vaccintypes;\n },\n ADD_VACCINTYPE_SUCCESS(state, vaccintype) {\n let results = [...state.vaccintypes.results, vaccintype]\n state.vaccintypes = {...state.vaccintypes, results: results}\n },\n UPDATE_VACCINTYPE_SUCCESS(state, vaccintype) {\n let results = state.vaccintypes.results.map(obj => obj.id == vaccintype.id ? vaccintype : obj)\n state.vaccintypes = {...state.vaccintypes, results: results}\n },\n DEL_VACCINTYPE_SUCCESS(state, id){\n let results = state.vaccintypes.results.filter(obj => obj.id != id)\n state.vaccintypes = {...state.vaccintypes, results: results}\n },\n CLEAR_VACCINTYPES(state){\n state.vaccintypes = {}\n },\n};","import {API} from \"./axios\";\n\nexport const interventionsService = {\n addIntervention,\n updateIntervention,\n getInterventions,\n delIntervention,\n getCountByAction,\n getCountByTypeequip,\n getCountByMarque,\n getCountByRegion\n};\n\n// ####################################################################### ADD Intervention\n\nasync function addIntervention(params) {\n try{\n const res = await API.post(`/interventions/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE Intervention\n\nasync function updateIntervention(params) {\n try{\n const res = await API.patch(`/interventions/${params.interventionId}`, {name: params.name});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE Intervention\n\nasync function delIntervention(id) {\n\n try{\n const res = await API.delete(`/interventions/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"intervention Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET InterventionS\n\nasync function getInterventions(params){\n try{\n const res = await API.get(`/interventions?populate=device,operations.operation.interventionoperation,operations.action.interventionaction`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET COUNT BY ACTION\n\nasync function getCountByAction(params){\n try{\n const res = await API.get(`/interventions/countByAction`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET COUNT BY EQUIPTYPE\n\nasync function getCountByTypeequip(params){\n try{\n const res = await API.get(`/interventions/countByTypeequip`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET COUNT BY MARQUE\n\nasync function getCountByMarque(params){\n try{\n const res = await API.get(`/interventions/countByMarque`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET COUNT BY REGION\n\nasync function getCountByRegion(params){\n try{\n const res = await API.get(`/interventions/countByRegion`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { interventionsService } from '../../helpers/backend/interventions.service';\n\nexport const state = {\n interventions: {},\n countByAction: [],\n countByTypeequip: [],\n countByMarque: [],\n countByRegion: [],\n}\n\nexport const getters = {\n getInterventions(state) {\n return state.interventions\n },\n getCountByAction(state) {\n return state.countByAction\n },\n getCountByTypeequip(state) {\n return state.countByTypeequip\n },\n getCountByMarque(state) {\n return state.countByMarque\n },\n getCountByRegion(state) {\n return state.countByRegion\n },\n}\n\nexport const actions = {\n\n addIntervention({ commit }, params) {\n return interventionsService.addIntervention(params)\n .then(\n intervention => {\n commit(\"ADD_INTERVENTION_SUCCESS\", intervention)\n return Promise.resolve(intervention);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateIntervention({ commit }, params) {\n return interventionsService.updateInterventions(params)\n .then(\n intervention => {\n commit(\"UPDATE_INTERVENTION_SUCCESS\", intervention)\n return Promise.resolve(intervention);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delIntervention({ commit }, id) {\n return interventionsService.delIntervention(id)\n .then(\n intervention => {\n commit(\"DEL_INTERVENTION_SUCCESS\", id)\n return Promise.resolve(intervention);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getInterventionsBy({ commit }, params) {\n return interventionsService.getInterventions(params)\n .then(\n interventions => {\n commit(\"GET_INTERVENTIONS_SUCCESS\", interventions);\n return Promise.resolve(interventions)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getCountByActionBy({commit}, params) {\n return interventionsService.getCountByAction(params)\n .then(\n count => {\n commit(\"GET_COUNTACTION_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getCountByTypeequipBy({commit}, params) {\n return interventionsService.getCountByTypeequip(params)\n .then(\n count => {\n commit(\"GET_COUNTTYPE_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getCountByMarqueBy({commit}, params) {\n return interventionsService.getCountByMarque(params)\n .then(\n count => {\n commit(\"GET_COUNTMARQUE_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getCountByRegionBy({commit}, params) {\n return interventionsService.getCountByRegion(params)\n .then(\n count => {\n commit(\"GET_COUNTREGION_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n clearInterventions({ commit }) {\n commit(\"CLEAR_INTERVENTIONS\")\n }\n};\n\nexport const mutations = {\n GET_INTERVENTIONS_SUCCESS(state, interventions) {\n state.interventions = interventions;\n },\n ADD_INTERVENTION_SUCCESS(state, intervention) {\n if(intervention.type == \"CORRECTIVE\"){\n let results = [intervention, ...state.interventions.results]\n state.interventions = {...state.interventions, results: results}\n }\n },\n UPDATE_INTERVENTION_SUCCESS(state, intervention) {\n let results = state.interventions.results.map(obj => obj.id == intervention.id ? intervention : obj)\n state.interventions = {...state.interventions, results: results}\n },\n DEL_INTERVENTION_SUCCESS(state, id) {\n let results = state.interventions.results.filter(obj => obj.id != id)\n state.interventions = {...state.interventions, results: results}\n },\n GET_COUNTACTION_SUCCESS(state, count) {\n state.countByAction = count;\n },\n GET_COUNTTYPE_SUCCESS(state, count) {\n state.countByTypeequip = count;\n },\n GET_COUNTMARQUE_SUCCESS(state, count) {\n state.countByMarque = count;\n },\n GET_COUNTREGION_SUCCESS(state, count) {\n state.countByRegion = count;\n },\n CLEAR_INTERVENTIONS(state) {\n state.interventions = {}\n },\n};","export const state = {\n layoutType: 'vertical',\n layoutWidth: 'fluid',\n leftSidebarType: 'light',\n topbar: 'light',\n loader: false\n}\n\nexport const getters = {}\n\nexport const mutations = {\n CHANGE_LAYOUT(state, layoutType) {\n state.layoutType = layoutType;\n },\n CHANGE_LAYOUT_WIDTH(state, layoutWidth) {\n state.layoutWidth = layoutWidth;\n },\n CHANGE_LEFT_SIDEBAR_TYPE(state, leftSidebarType) {\n state.leftSidebarType = leftSidebarType;\n },\n CHANGE_TOPBAR(state, topbar) {\n state.topbar = topbar;\n },\n LOADER(state, loader) {\n state.loader = loader\n }\n}\n\nexport const actions = {\n changeLayoutType({ commit }, { layoutType }) {\n commit('CHANGE_LAYOUT', layoutType);\n },\n\n changeLayoutWidth({ commit }, { layoutWidth }) {\n commit('CHANGE_LAYOUT_WIDTH', layoutWidth)\n },\n\n changeLeftSidebarType({ commit }, { leftSidebarType }) {\n commit('CHANGE_LEFT_SIDEBAR_TYPE', leftSidebarType)\n },\n\n changeTopbar({ commit }, { topbar }) {\n commit('CHANGE_TOPBAR', topbar)\n },\n\n changeLoaderValue({ commit }, { loader }) {\n commit('LOADER', loader)\n }\n}\n","import { API } from \"./axios\";\n\nexport const provincesService = {\n getProvinces,\n addProvince,\n updateProvince,\n delProvince,\n};\n\n// Get Provinces\n\nasync function getProvinces(params) {\n try {\n const res = await API.get(`/provinces`, { params: params });\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(\"Erreur Validations !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### ADD Province\n\nasync function addProvince(params) {\n try {\n const res = await API.post(`/provinces/`, params);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE Province\n\nasync function updateProvince(params) {\n try {\n const res = await API.patch(`/provinces/${params.provinceId}`, { name: params.name, region: params.region });\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE Province\n\nasync function delProvince(id) {\n\n try {\n const res = await API.delete(`/provinces/${id}`);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '404') {\n return Promise.reject(\"province Not Found !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { provincesService } from '../../helpers/backend/provinces.service';\n\nexport const state = {\n provinces: {},\n}\n\nexport const getters = {\n getProvinces(state) {\n return state.provinces;\n },\n}\n\nexport const actions = {\n getProvincesBy({ commit }, params) {\n return provincesService.getProvinces(params)\n .then(\n provinces => {\n commit(\"PROVINCES_SUCCESS\", provinces)\n return Promise.resolve(provinces);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n addProvince({ commit }, params) {\n return provincesService.addProvince(params)\n .then(\n province => {\n commit(\"ADD_PROVINCE_SUCCESS\", province)\n return Promise.resolve(province);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateProvince({ commit }, params) {\n return provincesService.updateProvince(params)\n .then(\n province => {\n commit(\"UPDATE_PROVINCE_SUCCESS\", province)\n return Promise.resolve(province);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delProvince({ commit }, id) {\n return provincesService.delProvince(id)\n .then(\n province => {\n commit(\"DEL_PROVINCE_SUCCESS\", id)\n return Promise.resolve(province);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n clearProvinces({ commit }) {\n commit(\"CLEAR_PROVINCES_SUCCESS\")\n },\n}\n\nexport const mutations = {\n PROVINCES_SUCCESS(state, provinces) {\n state.provinces = provinces;\n },\n\n ADD_PROVINCE_SUCCESS(state, province) {\n let results = [...state.provinces.results, province]\n state.provinces = { ...state.provinces, results: results }\n },\n UPDATE_PROVINCE_SUCCESS(state, province) {\n let results = state.provinces.results.map(obj => obj.id == province.id ? province : obj)\n state.provinces = { ...state.provinces, results: results }\n },\n DEL_PROVINCE_SUCCESS(state, id) {\n let results = state.provinces.results.filter(obj => obj.id != id)\n state.provinces = { ...state.provinces, results: results }\n },\n\n CLEAR_PROVINCES_SUCCESS(state) {\n state.provinces = {};\n },\n}","import {API} from \"./axios\";\n\nexport const actionsService = {\n addAction,\n updateAction,\n getActions,\n delAction\n};\n\n// ####################################################################### ADD ACTION\n\nasync function addAction(params) {\n try{\n const res = await API.post(`/actions/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE ACTION\n\nasync function updateAction(params) {\n try{\n const res = await API.patch(`/actions/${params.actionId}`, {name: params.name});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE ACTION\n\nasync function delAction(id) {\n\n try{\n const res = await API.delete(`/actions/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"action Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET ACTIONS\n\nasync function getActions(params){\n try{\n const res = await API.get(`/actions`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { actionsService } from '../../helpers/backend/actions.service';\n\nexport const state = {\n actions: {},\n}\n\nexport const getters = {\n getActions(state) {\n return state.actions\n },\n}\n\nexport const actions = {\n\n addAction({ commit }, params) {\n return actionsService.addAction(params)\n .then(\n action => {\n commit(\"ADD_ACTION_SUCCESS\", action)\n return Promise.resolve(action);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateAction({ commit }, params) {\n return actionsService.updateAction(params)\n .then(\n action => {\n commit(\"UPDATE_ACTION_SUCCESS\", action)\n return Promise.resolve(action);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delAction({ commit }, id) {\n return actionsService.delAction(id)\n .then(\n action => {\n commit(\"DEL_ACTION_SUCCESS\", id)\n return Promise.resolve(action);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getActionsBy({ commit }, params) {\n return actionsService.getActions(params)\n .then(\n actions => {\n commit(\"GET_ACTIONS_SUCCESS\", actions);\n return Promise.resolve(actions)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearActions({ commit }) {\n commit(\"CLEAR_ACTIONS\")\n }\n};\n\nexport const mutations = {\n GET_ACTIONS_SUCCESS(state, actions) {\n state.actions = actions;\n },\n ADD_ACTION_SUCCESS(state, action) {\n let results = [...state.actions.results, action]\n state.actions = {...state.actions, results: results}\n },\n UPDATE_ACTION_SUCCESS(state, action) {\n let results = state.actions.results.map(obj => obj.id == action.id ? action : obj)\n state.actions = {...state.actions, results: results}\n },\n DEL_ACTION_SUCCESS(state, id) {\n let results = state.actions.results.filter(obj => obj.id != id)\n state.actions = {...state.actions, results: results}\n },\n CLEAR_ACTIONS(state) {\n state.actions = {}\n },\n};","var map = {\n\t\"./actions.js\": \"cb99\",\n\t\"./alerts.js\": \"45f9\",\n\t\"./auth.js\": \"11c0\",\n\t\"./causes.js\": \"9b26\",\n\t\"./centres.js\": \"4757\",\n\t\"./configsalerts.js\": \"e966\",\n\t\"./consolidated.js\": \"6d0b\",\n\t\"./devices.js\": \"e380\",\n\t\"./home.js\": \"3165\",\n\t\"./interventionoperations.js\": \"ee9d\",\n\t\"./interventions.js\": \"b5b3\",\n\t\"./intervmobile.js\": \"e081\",\n\t\"./language.js\": \"5a98\",\n\t\"./layout.js\": \"c21a\",\n\t\"./logs.js\": \"99a5\",\n\t\"./marques.js\": \"2cec\",\n\t\"./materials.js\": \"f958\",\n\t\"./mtcevents.js\": \"2487\",\n\t\"./notification.js\": \"2208\",\n\t\"./offlinealerts.js\": \"afeb\",\n\t\"./operations.js\": \"e324\",\n\t\"./planifications.js\": \"a927\",\n\t\"./provinces.js\": \"c39e\",\n\t\"./rafc.js\": \"20fe\",\n\t\"./regions.js\": \"3f51\",\n\t\"./states.js\": \"37f8\",\n\t\"./stationshcplus.js\": \"4b6d\",\n\t\"./users.js\": \"b20d\",\n\t\"./vaccintypes.js\": \"b2c8\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"cfa9\";","import {API} from \"./axios\";\n\nexport const interventionsMobileService = {\n addIntervention,\n updateIntervention,\n getInterventions,\n delIntervention,\n getInterventionImg\n};\n\n// ####################################################################### ADD INTERVENTION\n\nasync function addIntervention(params) {\n try{\n const res = await API.post(`/mobile/interventions/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE INTERVENTION\n\nasync function updateIntervention(params) {\n try{\n const res = await API.patch(`/mobile/interventions/${params.interventionId}`, {name: params.name});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE INTERVENTION\n\nasync function delIntervention(id) {\n\n try{\n const res = await API.delete(`/mobile/interventions/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"intervention Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET INTERVENTIONS\n\nasync function getInterventions(params){\n try{\n const res = await API.get(`/mobile/interventions`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET INTERVENTION IMG\n\nasync function getInterventionImg(id){\n try{\n const res = await API.get(`/mobile/interventions/img/${id}`,{ responseType: 'blob' });\n console.log(res);\n return res;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { interventionsMobileService } from '../../helpers/backend/intervmobile.service';\n\nexport const state = {\n interventions: {},\n img: {}\n}\n\nexport const getters = {\n getInterventions(state) {\n return state.interventions\n },\n getInterventionImgData(state) {\n return state.img\n },\n}\n\nexport const actions = {\n\n addIntervention({ commit }, params) {\n return interventionsMobileService.addIntervention(params)\n .then(\n intervention => {\n commit(\"ADD_INTERVENTION_SUCCESS\", intervention)\n return Promise.resolve(intervention);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateIntervention({ commit }, params) {\n return interventionsMobileService.updateIntervention(params)\n .then(\n intervention => {\n commit(\"UPDATE_INTERVENTION_SUCCESS\", intervention)\n return Promise.resolve(intervention);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delIntervention({ commit }, id) {\n return interventionsMobileService.delIntervention(id)\n .then(\n intervention => {\n commit(\"DEL_INTERVENTION_SUCCESS\", id)\n return Promise.resolve(intervention);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getInterventionsBy({ commit }, params) {\n return interventionsMobileService.getInterventions(params)\n .then(\n interventions => {\n commit(\"GET_INTERVENTIONS_SUCCESS\", interventions);\n return Promise.resolve(interventions)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getInterventionImg({ commit }, id) {\n return interventionsMobileService.getInterventionImg(id)\n .then(\n img => {\n commit(\"GET_INTERVENTION_IMG_SUCCESS\", img);\n return Promise.resolve(img)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearInterventions({ commit }) {\n commit(\"CLEAR_INTERVENTIONS\")\n }\n};\n\nexport const mutations = {\n GET_INTERVENTIONS_SUCCESS(state, interventions) {\n state.interventions = interventions;\n },\n ADD_INTERVENTION_SUCCESS(state, intervention) {\n let results = [...state.interventions.results, intervention]\n state.interventions = {...state.interventions, results: results}\n },\n UPDATE_INTERVENTION_SUCCESS(state, intervention) {\n let results = state.interventions.results.map(obj => obj.id == intervention.id ? intervention : obj)\n state.interventions = {...state.interventions, results: results}\n },\n DEL_INTERVENTION_SUCCESS(state, id) {\n let results = state.interventions.results.filter(obj => obj.id != id)\n state.interventions = {...state.interventions, results: results}\n },\n GET_INTERVENTION_IMG_SUCCESS(state, img){\n state.img = img\n },\n CLEAR_INTERVENTIONS(state) {\n state.interventions = {}\n },\n};","import {API} from \"./axios\";\n\nexport const operationsService = {\n addOperation,\n updateOperation,\n getOperations,\n delOperation\n};\n\n// ####################################################################### ADD ACTION\n\nasync function addOperation(params) {\n try{\n const res = await API.post(`/operations/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE ACTION\n\nasync function updateOperation(params) {\n try{\n const res = await API.patch(`/operations/${params.operationId}`, {name: params.name});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE ACTION\n\nasync function delOperation(id) {\n\n try{\n const res = await API.delete(`/operations/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"operation Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET ACTIONS\n\nasync function getOperations(params){\n try{\n const res = await API.get(`/operations`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { operationsService } from '../../helpers/backend/operations.service';\n\nexport const state = {\n operations: {},\n}\n\nexport const getters = {\n getOperations(state) {\n return state.operations\n },\n}\n\nexport const actions = {\n\n addOperation({ commit }, params) {\n return operationsService.addOperation(params)\n .then(\n operation => {\n commit(\"ADD_OPERATION_SUCCESS\", operation)\n return Promise.resolve(operation);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateOperation({ commit }, params) {\n return operationsService.updateOperation(params)\n .then(\n operation => {\n commit(\"UPDATE_OPERATION_SUCCESS\", operation)\n return Promise.resolve(operation);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delOperation({ commit }, id) {\n return operationsService.delOperation(id)\n .then(\n operation => {\n commit(\"DEL_OPERATION_SUCCESS\", id)\n return Promise.resolve(operation);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getOperationsBy({ commit }, params) {\n return operationsService.getOperations(params)\n .then(\n operations => {\n commit(\"GET_OPERATIONS_SUCCESS\", operations);\n return Promise.resolve(operations)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearOperations({ commit }) {\n commit(\"CLEAR_OPERATIONS\")\n }\n};\n\nexport const mutations = {\n GET_OPERATIONS_SUCCESS(state, operations) {\n state.operations = operations;\n },\n ADD_OPERATION_SUCCESS(state, operation) {\n let results = [...state.operations.results, operation]\n state.operations = {...state.operations, results: results}\n },\n UPDATE_OPERATION_SUCCESS(state, operation) {\n let results = state.operations.results.map(obj => obj.id == operation.id ? operation : obj)\n state.operations = {...state.operations, results: results}\n },\n DEL_OPERATION_SUCCESS(state, id) {\n let results = state.operations.results.filter(obj => obj.id != id)\n state.operations = {...state.operations, results: results}\n },\n CLEAR_OPERATIONS(state) {\n state.operations = {}\n },\n};","import {API} from \"./axios\";\n\nexport const devicesService = {\n getAllDevices,\n getDevices,\n exportDevicesXLS,\n exportAllDevicesXLS,\n getDevicesTransport,\n getDeviceInfos,\n getDeviceInfosBySerial,\n getEvents,\n addDevice,\n updateDevice,\n delDevice,\n interventionOffline,\n aquitDeviceOffline,\n};\n\n// ####################################################################### GET ALL DEVICES\n\nasync function getAllDevices(params){\n try{\n const res = await API.get(`/devices?populate=region,province,centre`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET DEVICES\n\nasync function getDevices(params){\n try{\n const res = await API.get(`/devices?populate=region,province,marque,centre,vaccinTypes`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### Export Devices offline XLS\n\nasync function exportDevicesXLS(params) {\n try {\n const res = await API.get(`/devices/export`, {\n params: params,\n responseType: \"blob\"\n });\n return res;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### Export All Devices XLS\n\nasync function exportAllDevicesXLS() {\n try {\n const res = await API.get(`/devices/exportAll`, {\n responseType: \"blob\"\n });\n return res;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET DEVICES\n\nasync function getDevicesTransport(params){\n try{\n const res = await API.get(`/devices/transport`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET DEVICE\n\nasync function getDeviceInfos(id){\n try{\n const res = await API.get(`/devices/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET DEVICE BY SERIAL\n\nasync function getDeviceInfosBySerial(serial){\n try{\n const res = await API.get(`/devices/serial/${serial}`);\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET Events\n\nasync function getEvents(params){\n try{\n if(params.from && params.to){\n const res = await API.get(`/events/${params.serial}/${params.from}/${params.to}`, {params: {limit: params.limit, sortBy: params.sortBy}});\n return {\n ...res.data, \n loaderDashboard: false,\n from: params.from || \"\",\n to: params.to || \"\",\n }\n }else{\n const res = await API.get(`/events`, {params: {...params, limit: params.limit ? params.limit : 100}});\n return {\n ...res.data, \n loaderDashboard: false,\n }\n }\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### ADD DEVICE\n\nasync function addDevice(params){\n try{\n const res = await API.post(`/devices`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE DEVICE\n\nasync function updateDevice(params) {\n try{\n let filtredParams = {\n serial: params.serial,\n ref: params.ref,\n type: params.type,\n marque: params.marque,\n thermostat: params.thermostat,\n name: params.name,\n stockType: params.stockType,\n region: params.region,\n province: params.province,\n centre: params.centre,\n lat: params.lat,\n lng: params.lng,\n vaccinTypes: params.vaccinTypes,\n phones: params.phones,\n dashboard: params.dashboard,\n state: params.state,\n interventionState: params.interventionState\n };\n const res = await API.patch(`/devices/${params.deviceId}`, filtredParams);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE DEVICE\n\nasync function delDevice(id){\n try{\n const res = await API.delete(`/devices/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"device Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ######################################################################## INTERVENTION OFFLINE\n\nasync function interventionOffline(params) {\n try {\n const res = await API.post(`/devices/intervention/${params.deviceId}`, {\n state: params.state,\n action: params.action,\n cause: params.cause,\n savedDosesSino: params.savedDosesSino,\n savedDosesFizer: params.savedDosesFizer,\n note: params.note,\n });\n return (res.data != '') ? res.data : { id: params.alertId, closed: true };\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ######################################################################## AQUIT OFFLINE\n\nasync function aquitDeviceOffline(params) {\n try {\n const res = await API.patch(`/devices/aquit/${params.serial}`, {\n operation: params.operation,\n note: params.note,\n });\n return res.data\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { devicesService } from '../../helpers/backend/devices.service';\n\nexport const state = {\n allDevices: {},\n devices: {},\n devicesTransport: {},\n device: {},\n events: {},\n export: {},\n interventionDevice: {},\n aquitDevice: {}\n}\n\nexport const getters = {\n getAllDevices(state) {\n return state.devices\n },\n getDevices(state) {\n return state.devices\n },\n getDevicesTransport(state) {\n return state.devicesTransport\n },\n getDevice(state) {\n return state.device\n },\n getEvents(state){\n return state.events\n },\n getInterventionDevice(state){\n return state.interventionDevice\n },\n getAquitDevice(state){\n return state.aquitDevice\n }\n}\n\nexport const actions = {\n getAllDevicesBy({ commit }, params) {\n return devicesService.getAllDevices(params)\n .then(\n devices => {\n commit(\"GET_ALL_DEVICES_SUCCESS\", devices);\n return Promise.resolve(devices)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n getDevicesBy({ commit }, params) {\n return devicesService.getDevices(params)\n .then(\n devices => {\n commit(\"GET_DEVICES_SUCCESS\", devices);\n return Promise.resolve(devices)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n exportDevicesXLS({commit}, params) {\n return devicesService.exportDevicesXLS(params)\n .then(\n res => {\n if(res.status !== 204){\n const url = window.URL.createObjectURL(new Blob([res.data]));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', `offline--${params.from}-${params.to}.xlsx`);\n document.body.appendChild(link);\n link.click();\n commit(\"EXPORT_SUCCESS\", res)\n return Promise.resolve({status: true});\n }else{\n return Promise.resolve({status: false});\n }\n \n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n exportAllDevicesXLS({commit}) {\n return devicesService.exportAllDevicesXLS()\n .then(\n res => {\n if(res.status !== 204){\n const url = window.URL.createObjectURL(new Blob([res.data]));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', `All-Devices.xlsx`);\n document.body.appendChild(link);\n link.click();\n commit(\"EXPORT_SUCCESS\", res)\n return Promise.resolve({status: true});\n }else{\n return Promise.resolve({status: false});\n }\n \n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n getDevicesTransportBy({ commit }, params) {\n return devicesService.getDevicesTransport(params)\n .then(\n devices => {\n commit(\"GET_DEVICES_TRANSPORT_SUCCESS\", devices);\n return Promise.resolve(devices)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n getDeviceInfos({ commit }, id) {\n return devicesService.getDeviceInfos(id)\n .then(\n device => {\n commit(\"GET_DEVICE_INFOS_SUCCESS\", device);\n return Promise.resolve(device)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n getDeviceInfosBySerial({ commit }, serial) {\n return devicesService.getDeviceInfosBySerial(serial)\n .then(\n device => {\n commit(\"GET_DEVICE_INFOS_SUCCESS\", device);\n return Promise.resolve(device)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n getEventsBy({ commit }, id){\n return devicesService.getEvents(id)\n .then(\n events => {\n commit(\"GET_EVENTS_SUCCESS\", events);\n return Promise.resolve(events)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n addDevice({ commit }, params) {\n return devicesService.addDevice(params)\n .then(\n device => {\n commit(\"ADD_DEVICE_SUCCESS\", device)\n return Promise.resolve(device);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n updateDevice({ commit }, params) {\n return devicesService.updateDevice(params)\n .then(\n action => {\n commit(\"UPDATE_DEVICE_SUCCESS\", action)\n return Promise.resolve(action);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n delDevice({ commit }, id) {\n return devicesService.delDevice(id)\n .then(\n device => {\n commit(\"DEL_DEVICE_SUCCESS\", id)\n return Promise.resolve(device);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n interventionOffline({ commit }, params) {\n return devicesService.interventionOffline(params)\n .then(\n device => {\n commit(\"INTERVENTION_OFFLINE_SUCCESS\", device)\n return Promise.resolve(device);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n clearDevices({ commit }) {\n commit(\"CLEAR_DEVICES\")\n },\n aquitDevice({ commit }, params) {\n return devicesService.aquitDeviceOffline(params)\n .then(\n result => {\n commit(\"AQUIT_DEVICE_SUCCESS\", result)\n return Promise.resolve(result);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n};\n\nexport const mutations = {\n GET_ALL_DEVICES_SUCCESS(state, devices) {\n state.devices = devices;\n },\n GET_DEVICES_SUCCESS(state, devices) {\n state.devices = devices;\n },\n EXPORT_SUCCESS(state, res) {\n state.export = res;\n },\n GET_DEVICES_TRANSPORT_SUCCESS(state, devices) {\n state.devicesTransport = devices;\n },\n GET_DEVICE_INFOS_SUCCESS(state, device) {\n state.device = device;\n },\n GET_EVENTS_SUCCESS(state, events){\n state.events = events;\n },\n ADD_DEVICE_SUCCESS(state, device){\n let results = [...state.devices.results, device]\n state.devices = {...state.devices, results: results}\n },\n UPDATE_DEVICE_SUCCESS(state, device) {\n if(state.devices.results){\n let results = state.devices.results.map(obj => obj.id == device.id ? device : obj)\n state.devices = {...state.devices, results: results}\n }\n },\n DEL_DEVICE_SUCCESS(state, id){\n let results = state.devices.results.filter(obj => obj.id != id)\n state.devices = {...state.devices, results: results}\n },\n INTERVENTION_OFFLINE_SUCCESS(state, device){\n state.interventionDevice = device;\n },\n CLEAR_DEVICES(state) {\n state.devices = {}\n },\n AQUIT_DEVICE_SUCCESS(state, result) {\n state.aquitDevice = result\n const device = result.device\n if(state.devices.results){\n let results = state.devices.results.map(obj => obj.id == device.id ? device : obj)\n state.devices = {...state.devices, results: results}\n }\n },\n};","const base_url = process.env.NODE_ENV == 'production' ? process.env.VUE_APP_BASE_URL : process.env.VUE_APP_BASE_URL_DEV\nconst ws_url = process.env.VUE_APP_WS\nexport default {\n base_url,\n ws_url\n}","import { API } from \"./axios\";\n\nexport const configalertsService = {\n addConfigAlert,\n updateConfigAlert,\n getConfigAlerts,\n delConfigAlert\n};\n\n// ####################################################################### ADD ConfigAlert\n\nasync function addConfigAlert(params) {\n try {\n const res = await API.post(`/alertsConfigs/`, params);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE ConfigAlert\n\nasync function updateConfigAlert(params) {\n try {\n const res = await API.patch(`/alertsConfigs/${params.configAlertId}`, {\n configAlertId: params.id,\n condition: params.condition,\n value: params.value,\n minutesFirstAlert: params.minutesFirstAlert,\n minutesBetweenAlerts: params.minutesBetweenAlerts,\n message: params.message\n }/* ,{\n headers: {\"content-type\": \"application/x-www-form-urlencoded\"}\n } */);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE ConfigAlert\n\nasync function delConfigAlert(id) {\n\n try {\n const res = await API.delete(`/alertsConfigs/${id}`);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '404') {\n return Promise.reject(\"configalert Not Found !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET ConfigAlerts\n\nasync function getConfigAlerts(params) {\n try {\n const res = await API.get(`/alertsConfigs?populate=device`, { params: params });\n return res.data;\n } catch (err) {\n if (err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { configalertsService } from '../../helpers/backend/configsalerts.service';\n\nexport const state = {\n configAlerts: {},\n}\n\nexport const getters = {\n getConfigAlerts(state) {\n return state.configAlerts\n },\n}\n\nexport const actions = {\n\n addConfigAlert({ commit }, params) {\n return configalertsService.addConfigAlert(params)\n .then(\n configAlert => {\n commit(\"ADD_CONFIGALERT_SUCCESS\", configAlert)\n return Promise.resolve(configAlert);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateConfigAlert({ commit }, params) {\n return configalertsService.updateConfigAlert(params)\n .then(\n configAlert => {\n commit(\"UPDATE_CONFIGALERT_SUCCESS\", configAlert)\n return Promise.resolve(configAlert);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delConfigAlert({ commit }, id) {\n return configalertsService.delConfigAlert(id)\n .then(\n configAlert => {\n commit(\"DEL_CONFIGALERT_SUCCESS\", id)\n return Promise.resolve(configAlert);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getConfigAlertsBy({ commit }, params) {\n return configalertsService.getConfigAlerts(params)\n .then(\n configAlerts => {\n commit(\"GET_CONFIGALERTS_SUCCESS\", configAlerts);\n return Promise.resolve(configAlerts)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearConfigAlerts({ commit }) {\n commit(\"CLEAR_CONFIGALERTS\")\n }\n};\n\nexport const mutations = {\n GET_CONFIGALERTS_SUCCESS(state, configAlerts) {\n state.configAlerts = configAlerts;\n },\n ADD_CONFIGALERT_SUCCESS(state, configAlert) {\n let results = [...state.configAlerts.results, configAlert]\n state.configAlerts = {...state.configAlerts, results: results}\n },\n UPDATE_CONFIGALERT_SUCCESS(state, configAlert) {\n let results = state.configAlerts.results.map(obj => obj.id == configAlert.id ? configAlert : obj)\n state.configAlerts = {...state.configAlerts, results: results}\n },\n DEL_CONFIGALERT_SUCCESS(state, id) {\n let results = state.configAlerts.results.filter(obj => obj.id != id)\n state.configAlerts = {...state.configAlerts, results: results}\n },\n CLEAR_CONFIGALERTS(state) {\n state.configAlerts = {}\n },\n};","import {API} from \"./axios\";\n\nexport const interventionOperationsService = {\n addInterventionOperation,\n updateInterventionOperation,\n getInterventionOperations,\n delInterventionOperation\n};\n\n// ####################################################################### ADD InterventionOperation\n\nasync function addInterventionOperation(params) {\n try{\n const res = await API.post(`/intervention-operations/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE InterventionOperation\n\nasync function updateInterventionOperation(params) {\n try{\n const res = await API.patch(`/intervention-operations/${params.interventionOperationId}`, {name: params.name});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE InterventionOperation\n\nasync function delInterventionOperation(id) {\n\n try{\n const res = await API.delete(`/intervention-operations/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"intervention Operation Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET InterventionOperationS\n\nasync function getInterventionOperations(params){\n try{\n const res = await API.get(`/intervention-operations`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { interventionOperationsService } from '../../helpers/backend/interventionoperations.service';\n\nexport const state = {\n interventionOperations: {},\n}\n\nexport const getters = {\n getInterventionOperations(state) {\n return state.interventionOperations\n },\n}\n\nexport const actions = {\n\n addInterventionOperation({ commit }, params) {\n return interventionOperationsService.addInterventionOperation(params)\n .then(\n interventionOperation => {\n commit(\"ADD_INTERVENTIONACTION_SUCCESS\", interventionOperation)\n return Promise.resolve(interventionOperation);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateInterventionOperation({ commit }, params) {\n return interventionOperationsService.updateInterventionOperations(params)\n .then(\n interventionOperation => {\n commit(\"UPDATE_INTERVENTIONACTION_SUCCESS\", interventionOperation)\n return Promise.resolve(interventionOperation);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delInterventionOperation({ commit }, id) {\n return interventionOperationsService.delInterventionOperation(id)\n .then(\n interventionOperation => {\n commit(\"DEL_INTERVENTIONACTION_SUCCESS\", id)\n return Promise.resolve(interventionOperation);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getInterventionOperationsBy({ commit }, params) {\n return interventionOperationsService.getInterventionOperations(params)\n .then(\n interventionOperations => {\n commit(\"GET_INTERVENTIONACTIONS_SUCCESS\", interventionOperations);\n return Promise.resolve(interventionOperations)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearInterventionOperations({ commit }) {\n commit(\"CLEAR_INTERVENTIONACTIONS\")\n }\n};\n\nexport const mutations = {\n GET_INTERVENTIONACTIONS_SUCCESS(state, interventionOperations) {\n state.interventionOperations = interventionOperations;\n },\n ADD_INTERVENTIONACTION_SUCCESS(state, interventionOperation) {\n let results = [...state.interventionOperations.results, interventionOperation]\n state.interventionOperations = {...state.interventionOperations, results: results}\n },\n UPDATE_INTERVENTIONACTION_SUCCESS(state, interventionOperation) {\n let results = state.interventionOperations.results.map(obj => obj.id == interventionOperation.id ? interventionOperation : obj)\n state.interventionOperations = {...state.interventionOperations, results: results}\n },\n DEL_INTERVENTIONACTION_SUCCESS(state, id) {\n let results = state.interventionOperations.results.filter(obj => obj.id != id)\n state.interventionOperations = {...state.interventionOperations, results: results}\n },\n CLEAR_INTERVENTIONACTIONS(state) {\n state.interventionOperations = {}\n },\n};","import {API} from \"./axios\";\n\nexport const materialsService = {\n addMaterial,\n updateMaterial,\n getMaterials,\n delMaterial\n};\n\n// ####################################################################### ADD MATERIAL\n\nasync function addMaterial(params) {\n try{\n const res = await API.post(`/materials/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE MATERIAL\n\nasync function updateMaterial(params) {\n try{\n const res = await API.patch(`/materials/${params.materialId}`, {name: params.name, type: params.type});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE MATERIAL\n\nasync function delMaterial(id) {\n\n try{\n const res = await API.delete(`/materials/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"material Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET MATERIALS\n\nasync function getMaterials(params){\n try{\n const res = await API.get(`/materials`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { materialsService } from '../../helpers/backend/materials.service';\n\nexport const state = {\n materials: {},\n}\n\nexport const getters = {\n getMaterials(state){\n return state.materials\n },\n}\n\nexport const actions = {\n\n addMaterial({ commit }, params) {\n return materialsService.addMaterial(params)\n .then(\n material => {\n commit(\"ADD_MATERIAL_SUCCESS\", material)\n return Promise.resolve(material);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateMaterial({ commit }, params) {\n return materialsService.updateMaterial(params)\n .then(\n material => {\n commit(\"UPDATE_MATERIAL_SUCCESS\", material)\n return Promise.resolve(material);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delMaterial({ commit }, id) {\n return materialsService.delMaterial(id)\n .then(\n material => {\n commit(\"DEL_MATERIAL_SUCCESS\", id)\n return Promise.resolve(material);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getMaterialsBy({ commit }, params) {\n return materialsService.getMaterials(params)\n .then(\n materials => {\n commit(\"GET_MATERIALS_SUCCESS\", materials);\n return Promise.resolve(materials)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearMaterials({ commit }) {\n commit(\"CLEAR_MATERIALS\")\n }\n};\n\nexport const mutations = {\n GET_MATERIALS_SUCCESS(state, materials) {\n state.materials = materials;\n },\n ADD_MATERIAL_SUCCESS(state, material) {\n let results = [...state.materials.results, material]\n state.materials = {...state.materials, results: results}\n },\n UPDATE_MATERIAL_SUCCESS(state, material) {\n let results = state.materials.results.map(obj => obj.id == material.id ? material : obj)\n state.materials = {...state.materials, results: results}\n },\n DEL_MATERIAL_SUCCESS(state, id){\n let results = state.materials.results.filter(obj => obj.id != id)\n state.materials = {...state.materials, results: results}\n },\n CLEAR_MATERIALS(state){\n state.materials = {}\n },\n};"],"sourceRoot":""}