mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
1 line
113 KiB
JSON
1 line
113 KiB
JSON
{"ast":null,"code":"import _asyncToGenerator from \"C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport { __decorate } from \"tslib\";\nimport { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { environment } from 'src/environments/environment';\nimport { AuthService } from '../services/auth.service';\nimport { ChangeProfileService } from './change-profile.service';\nimport { OfflineManagerService } from 'src/app/services/offline-manager.service';\nimport { catchError } from \"rxjs/operators\";\nimport { SessionStore } from '../store/session.service';\nlet EventsService = class EventsService {\n constructor(http, user, changeProfileService, offlinemanager) {\n this.http = http;\n this.user = user;\n this.changeProfileService = changeProfileService;\n this.offlinemanager = offlinemanager;\n this.authheader = {};\n this.calendarIds = [];\n this.usersCalendarIds = [];\n this.hasSharedCalendar = false;\n this.hasSharedOficial = false;\n this.hasSharedPessoal = false;\n this.hasOwnOficial = false;\n this.hasOwnPessoal = false;\n this.hasOwnCalendar = false;\n this.calendarNames = {};\n this.calendarNamesAry = [];\n this.calendarNamesAryNoPr = [];\n this.calendarNamesAryReverse = [];\n this.calendarNamesAryPR = [];\n this.calendarNamesType = {};\n this.calendarRole = [];\n this.calendrFullName = [];\n this.myCalendarNames = {};\n this.hasAnyCalendar = false;\n this.setHeader();\n this.changeProfileService.registerCallback(() => {\n this.setHeader();\n });\n }\n setHeader() {\n var _this = this;\n return _asyncToGenerator(function* () {\n _this.headers = new HttpHeaders();\n _this.headersMdOficial = new HttpHeaders();\n _this.headersMdPessoal = new HttpHeaders();\n _this.headersPrOficial = new HttpHeaders();\n _this.headersPrPessoal = new HttpHeaders();\n _this.headersSharedOficial = new HttpHeaders();\n _this.headersSharedPessoal = new HttpHeaders();\n _this.headerOwnOficial = new HttpHeaders();\n _this.headerOwnPessoal = new HttpHeaders();\n _this.headerSharedOficial = new HttpHeaders();\n _this.headerSharedPessoal = new HttpHeaders();\n _this.headers = _this.headers.set('Authorization', SessionStore.user.BasicAuthKey);\n _this.usersCalendarIds = [];\n _this.calendarNames = {};\n _this.calendarRole = [];\n _this.calendrFullName = [];\n _this.calendarIds = [];\n _this.calendarNamesAry = [];\n _this.calendarNamesType = {};\n _this.hasSharedCalendar = false;\n _this.hasSharedOficial = false;\n _this.hasSharedPessoal = false;\n _this.hasOwnCalendar = false;\n _this.hasOwnOficial = false;\n _this.hasOwnPessoal = false;\n if (SessionStore.user) {\n if (SessionStore.user.Profile == 'MDGPR') {\n for (let calendar of SessionStore.user.OwnerCalendars) {\n _this.hasAnyCalendar = true;\n if (calendar.CalendarName == 'Oficial') {\n _this.hasOwnOficial = true;\n _this.headersMdOficial = _this.headersMdOficial.set('Authorization', SessionStore.user.BasicAuthKey);\n _this.headersMdOficial = _this.headersMdOficial.set('CalendarId', calendar.CalendarId);\n _this.headersMdOficial = _this.headersMdOficial.set('CalendarRoleId', calendar.CalendarRoleId);\n } else if (calendar.CalendarName == 'Pessoal') {\n _this.hasOwnPessoal = true;\n _this.headersMdPessoal = _this.headersMdPessoal.set('Authorization', SessionStore.user.BasicAuthKey);\n _this.headersMdPessoal = _this.headersMdPessoal.set('CalendarId', calendar.CalendarId);\n _this.headersMdPessoal = _this.headersMdPessoal.set('CalendarRoleId', calendar.CalendarRoleId);\n }\n }\n for (let sharedCalendar of SessionStore.user.SharedCalendars) {\n _this.hasAnyCalendar = true;\n if (sharedCalendar.CalendarName == 'Oficial') {\n _this.hasSharedOficial = true;\n _this.headersSharedOficial = _this.headersSharedOficial.set('Authorization', SessionStore.user.BasicAuthKey);\n _this.headersSharedOficial = _this.headersSharedOficial.set('CalendarId', sharedCalendar.CalendarId);\n _this.headersSharedOficial = _this.headersSharedOficial.set('CalendarRoleId', sharedCalendar.CalendarRoleId);\n } else if (sharedCalendar.CalendarName == 'Pessoal') {\n _this.hasSharedPessoal = true;\n _this.headersSharedPessoal = _this.headersSharedPessoal.set('Authorization', SessionStore.user.BasicAuthKey);\n _this.headersSharedPessoal = _this.headersSharedPessoal.set('CalendarId', sharedCalendar.CalendarId);\n _this.headersSharedPessoal = _this.headersSharedPessoal.set('CalendarRoleId', sharedCalendar.CalendarRoleId);\n }\n }\n } else if (SessionStore.user.Profile == 'PR') {\n for (let calendar of SessionStore.user.OwnerCalendars) {\n _this.hasAnyCalendar = true;\n if (calendar.CalendarName == 'Oficial') {\n _this.hasOwnOficial = true;\n _this.headersPrOficial = _this.headersPrOficial.set('Authorization', SessionStore.user.BasicAuthKey);\n _this.headersPrOficial = _this.headersPrOficial.set('CalendarId', calendar.CalendarId);\n _this.headersPrOficial = _this.headersPrOficial.set('CalendarRoleId', calendar.CalendarRoleId);\n } else if (calendar.CalendarName == 'Pessoal') {\n _this.hasOwnPessoal = true;\n _this.headersPrPessoal = _this.headersPrPessoal.set('Authorization', SessionStore.user.BasicAuthKey);\n _this.headersPrPessoal = _this.headersPrPessoal.set('CalendarId', calendar.CalendarId);\n _this.headersPrPessoal = _this.headersPrPessoal.set('CalendarRoleId', calendar.CalendarRoleId);\n }\n }\n }\n for (let calendar of SessionStore.user.OwnerCalendars) {\n _this.hasAnyCalendar = true;\n if (!_this.usersCalendarIds.includes(calendar.OwnerUserId)) {\n _this.usersCalendarIds.push(calendar.OwnerUserId);\n }\n if (!_this.calendarIds.includes(calendar.CalendarId)) {\n _this.calendarIds.push(calendar.CalendarId);\n }\n _this.hasOwnCalendar = true;\n if (calendar.CalendarName == 'Oficial') {\n _this.hasOwnOficial = true;\n _this.headerOwnOficial = _this.headerOwnOficial.set('Authorization', SessionStore.user.BasicAuthKey);\n _this.headerOwnOficial = _this.headerOwnOficial.set('CalendarId', calendar.CalendarId);\n _this.headerOwnOficial = _this.headerOwnOficial.set('CalendarRoleId', calendar.CalendarRoleId);\n _this.headerOwnOficial = _this.headerOwnOficial.set('CalendarName', calendar.CalendarName);\n } else if (calendar.CalendarName == 'Pessoal') {\n _this.hasOwnPessoal = true;\n _this.headerOwnPessoal = _this.headerOwnPessoal.set('Authorization', SessionStore.user.BasicAuthKey);\n _this.headerOwnPessoal = _this.headerOwnPessoal.set('CalendarId', calendar.CalendarId);\n _this.headerOwnPessoal = _this.headerOwnPessoal.set('CalendarRoleId', calendar.CalendarRoleId);\n _this.headerOwnPessoal = _this.headerOwnPessoal.set('CalendarName', calendar.CalendarName);\n }\n }\n for (let sharedCalendar of SessionStore.user.SharedCalendars) {\n _this.hasAnyCalendar = true;\n if (!_this.usersCalendarIds.includes(sharedCalendar.OwnerUserId)) {\n _this.usersCalendarIds.push(sharedCalendar.OwnerUserId);\n }\n if (!_this.calendarIds.includes(sharedCalendar.CalendarId)) {\n _this.calendarIds.push(sharedCalendar.CalendarId);\n }\n _this.hasSharedCalendar = true;\n if (sharedCalendar.CalendarName == 'Oficial') {\n _this.hasSharedOficial = true;\n _this.headerSharedOficial = _this.headerSharedOficial.set('Authorization', SessionStore.user.BasicAuthKey);\n _this.headerSharedOficial = _this.headerSharedOficial.set('CalendarId', sharedCalendar.CalendarId);\n _this.headerSharedOficial = _this.headerSharedOficial.set('CalendarRoleId', sharedCalendar.CalendarRoleId);\n _this.headerSharedOficial = _this.headerSharedOficial.set('CalendarName', sharedCalendar.CalendarName);\n } else if (sharedCalendar.CalendarName == 'Pessoal') {\n _this.hasSharedPessoal = true;\n _this.headerSharedPessoal = _this.headerSharedPessoal.set('Authorization', SessionStore.user.BasicAuthKey);\n _this.headerSharedPessoal = _this.headerSharedPessoal.set('CalendarId', sharedCalendar.CalendarId);\n _this.headerSharedPessoal = _this.headerSharedPessoal.set('CalendarRoleId', sharedCalendar.CalendarRoleId);\n _this.headerSharedPessoal = _this.headerSharedPessoal.set('CalendarName', sharedCalendar.CalendarName);\n }\n }\n for (let sharedCalendar of SessionStore.user.SharedCalendars) {\n _this.hasAnyCalendar = true;\n if (sharedCalendar?.OwnerUserId) {\n _this.GetCalendarName(sharedCalendar.OwnerUserId).subscribe(e => {\n _this.calendarNames[sharedCalendar.CalendarId] = e.FullName;\n _this.myCalendarNames[sharedCalendar.CalendarId] = e.FullName;\n if (!_this.calendarNamesAry.find(x => x.Role == e.Role)) {\n let objectShared = {\n \"Fullname\": e.FullName,\n \"Role\": e.Role,\n \"OwnerUserId\": sharedCalendar.OwnerUserId,\n \"RoleId\": sharedCalendar.CalendarRoleId\n };\n _this.calendarNamesAry.push(objectShared);\n if (e.Role == 'Presidente da República') {\n _this.calendarNamesAryPR.push(objectShared);\n } else {\n _this.calendarNamesAryNoPr.push(objectShared);\n }\n _this.calendarNamesType[e.FullName] = {};\n }\n _this.calendarNamesType[e.FullName][sharedCalendar.CalendarName] = true;\n _this.calendarNamesType[e.FullName][sharedCalendar.CalendarName + 'Id'] = sharedCalendar.CalendarId;\n _this.calendarNamesType[e.FullName]['RoleId'] = sharedCalendar.CalendarRoleId;\n _this.calendarNamesType[e.FullName]['OwnerId'] = sharedCalendar.OwnerUserId;\n });\n }\n }\n for (let OwnerCalendar of SessionStore.user.OwnerCalendars) {\n _this.hasAnyCalendar = true;\n _this.calendarNames[OwnerCalendar.CalendarId] = 'Meu calendario';\n if (!_this.calendarNamesAry.includes('Meu calendario')) {\n _this.calendarNamesAry.push('Meu calendario');\n _this.calendarNamesAryNoPr.push('Meu calendario');\n _this.calendarNamesType['Meu calendario'] = {};\n }\n _this.calendarNamesType['Meu calendario'][OwnerCalendar.CalendarName] = true;\n _this.calendarNamesType['Meu calendario'][OwnerCalendar.CalendarName + 'Id'] = OwnerCalendar.CalendarId;\n _this.calendarNamesType['Meu calendario']['RoleId'] = OwnerCalendar.CalendarRoleId;\n _this.calendarNamesType['Meu calendario']['OwnerId'] = OwnerCalendar.OwnerUserId || SessionStore.user.UserId;\n }\n if (SessionStore.user.OwnerCalendars.length == 0 && SessionStore.user.SharedCalendars.length == 0) {\n _this.hasAnyCalendar = false;\n } else {\n _this.hasAnyCalendar = true;\n }\n _this.calendarNamesAryReverse = _this.calendarNamesAry.reverse();\n (() => {\n const keys = {};\n for (let e of SessionStore.user.OwnerCalendars) {\n if (!keys[e.CalendarId]) {\n keys[e.CalendarId] = e.CalendarId;\n } else {\n throw `Calendar ${e.CalendarId} is repeated for user ` + SessionStore.user.FullName;\n }\n }\n for (let e of SessionStore.user.SharedCalendars) {\n if (!keys[e.CalendarId]) {\n keys[e.CalendarId] = e.CalendarId;\n } else {\n throw `Calendar ${e.CalendarId} is repeated for user ` + SessionStore.user.FullName;\n }\n }\n })();\n }\n })();\n }\n DetectCalendars(CalendarId) {\n const calendars = SessionStore.user.OwnerCalendars.concat(SessionStore.user.SharedCalendars);\n return calendars.find(e => e.CalendarId == CalendarId);\n }\n makeHeader(calendar) {\n let header = new HttpHeaders();\n header = header.set('Authorization', SessionStore.user.BasicAuthKey);\n header = header.set('CalendarId', calendar.CalendarId);\n header = header.set('CalendarRoleId', calendar.CalendarRoleId);\n header = header.set('CalendarName', calendar.CalendarName);\n return header;\n }\n isMyCalendar(CalendarId) {\n return this.myCalendarNames[CalendarId] || \"\";\n }\n getCalendarOwnNameByCalendarId(CalendarId) {\n return this.calendarNames[CalendarId] || \"\";\n }\n isMyEvent(event) {\n for (let calendar of SessionStore.user.OwnerCalendars) {\n if (event.CalendarId == calendar.CalendarId) {\n return true;\n }\n }\n for (let sharedCalendar of SessionStore.user.SharedCalendars) {\n if (event.CalendarId == sharedCalendar.CalendarId) {\n return false;\n }\n }\n return false;\n }\n getAllPrOficialEvents(startdate, enddate) {\n let geturl = environment.apiURL + 'calendar/pr';\n geturl = geturl.replace('/V4/', '/V5/');\n let params = new HttpParams();\n params = params.set(\"Start\", startdate);\n params = params.set(\"End\", enddate);\n let options = {\n headers: this.headersPrOficial,\n params: params\n };\n return this.http.get(`${geturl}`, options);\n }\n getAllPrPessoalEvents(startdate, enddate) {\n let geturl = environment.apiURL + 'calendar/pr';\n geturl = geturl.replace('/V4/', '/V5/');\n let params = new HttpParams();\n params = params.set(\"Start\", startdate);\n params = params.set(\"End\", enddate);\n let options = {\n headers: this.headersPrPessoal,\n params: params\n };\n return this.http.get(`${geturl}`, options);\n }\n getAllPrEvents(startdate, enddate) {\n var _this2 = this;\n return _asyncToGenerator(function* () {\n let prO = [],\n prP = [];\n prO = yield _this2.getAllPrOficialEvents(startdate, enddate).toPromise();\n prP = yield _this2.getAllPrPessoalEvents(startdate, enddate).toPromise();\n const resFinal = prO.concat(prP);\n return new Promise(resolve => {\n return resolve(resFinal);\n });\n })();\n }\n getAllMdOficialEvents(startdate, enddate) {\n let geturl = environment.apiURL + 'calendar/md';\n let params = new HttpParams();\n params = params.set(\"Start\", startdate);\n params = params.set(\"End\", enddate);\n let options = {\n headers: this.headersMdOficial,\n params: params\n };\n return this.http.get(`${geturl}`, options);\n }\n getAllMdPessoalEvents(startdate, enddate) {\n let geturl = environment.apiURL + 'calendar/md';\n let params = new HttpParams();\n params = params.set(\"Start\", startdate);\n params = params.set(\"End\", enddate);\n let options = {\n headers: this.headersMdPessoal,\n params: params\n };\n return this.http.get(`${geturl}`, options);\n }\n GetCalendarName(userid) {\n let geturl = environment.apiURL + 'userauthentication/single';\n let params = new HttpParams();\n params = params.set(\"id\", userid);\n let options = {\n headers: this.headers,\n params: params\n };\n return this.http.get(`${geturl}`, options);\n }\n getAllMdEvents(startdate, enddate) {\n var _this3 = this;\n return _asyncToGenerator(function* () {\n let prO = [],\n prP = [];\n for (let calendar of SessionStore.user.OwnerCalendars) {\n if (calendar.CalendarName == 'Oficial') {\n prO = yield _this3.getAllMdOficialEvents(startdate, enddate).toPromise();\n if (!Array.isArray(prO)) {\n prO = [];\n }\n }\n if (calendar.CalendarName == 'Pessoal') {\n prP = yield _this3.getAllMdPessoalEvents(startdate, enddate).toPromise();\n if (!Array.isArray(prP)) {\n prP = [];\n }\n }\n }\n const resFinal = prO.concat(prP);\n return new Promise(resolve => {\n return resolve(resFinal);\n });\n })();\n }\n getAllOwnEvents(startdate, enddate) {\n var _this4 = this;\n return _asyncToGenerator(function* () {\n let ownO = [],\n ownP = [];\n if (_this4.hasOwnOficial) {\n ownO = yield _this4.getAllOwnOficialEvents(startdate, enddate).toPromise();\n if (!Array.isArray(ownO)) {\n ownO = [];\n }\n }\n if (_this4.hasOwnPessoal) {\n ownP = yield _this4.getAllOwnPessoalEvents(startdate, enddate).toPromise();\n if (!Array.isArray(ownP)) {\n ownP = [];\n }\n }\n const resFinal = ownO.concat(ownP);\n return new Promise(resolve => {\n return resolve(resFinal);\n });\n })();\n }\n getAllOwnOficialEvents(startdate, enddate) {\n let geturl = environment.apiURL + 'calendar/GetEvents';\n let params = new HttpParams();\n params = params.set(\"StartDate\", startdate);\n params = params.set(\"EndDate\", enddate);\n let options = {\n headers: this.headerOwnOficial,\n params: params\n };\n return this.http.get(`${geturl}`, options);\n }\n getAllOwnPessoalEvents(startdate, enddate) {\n let geturl = environment.apiURL + 'calendar/GetEvents';\n let params = new HttpParams();\n params = params.set(\"StartDate\", startdate);\n params = params.set(\"EndDate\", enddate);\n let options = {\n headers: this.headerOwnPessoal,\n params: params\n };\n return this.http.get(`${geturl}`, options);\n }\n getEventsByCalendarId(startdate, enddate, calendarId) {\n var _this5 = this;\n return _asyncToGenerator(function* () {\n const calendars = SessionStore.user.OwnerCalendars.concat(SessionStore.user.SharedCalendars);\n const agendasCalendars = calendars.filter(e => e.CalendarId == calendarId);\n let result = [];\n for (let agendasCalendar of agendasCalendars) {\n var header = new HttpHeaders();\n header = header.set('Authorization', SessionStore.user.BasicAuthKey);\n header = header.set('CalendarId', agendasCalendar.CalendarId);\n header = header.set('CalendarRoleId', agendasCalendar.CalendarRoleId);\n header = header.set('CalendarName', agendasCalendar.CalendarName);\n let geturl = environment.apiURL + 'calendar/GetEvents';\n let params = new HttpParams();\n params = params.set(\"StartDate\", startdate);\n params = params.set(\"EndDate\", enddate);\n let options = {\n headers: header,\n params: params\n };\n const calendar = yield _this5.http.get(`${geturl}`, options).toPromise();\n result = result.concat(calendar);\n }\n return result;\n })();\n }\n genericGetAllSharedEvents(startdate, enddate) {\n var _this6 = this;\n return _asyncToGenerator(function* () {\n let result = [];\n for (let sharedCalendar of SessionStore.user.SharedCalendars) {\n var header = new HttpHeaders();\n header = header.set('Authorization', SessionStore.user.BasicAuthKey);\n header = header.set('CalendarId', sharedCalendar.CalendarId);\n header = header.set('CalendarRoleId', sharedCalendar.CalendarRoleId);\n header = header.set('CalendarName', sharedCalendar.CalendarName);\n let geturl = environment.apiURL + 'calendar/GetEvents';\n let params = new HttpParams();\n params = params.set(\"StartDate\", startdate);\n params = params.set(\"EndDate\", enddate);\n let options = {\n headers: header,\n params: params\n };\n const calendar = yield _this6.http.get(`${geturl}`, options).toPromise();\n result = result.concat(calendar);\n }\n return new Promise(resolve => {\n return resolve(result);\n });\n })();\n }\n genericGetAllSharedOficialEvents(startdate, enddate) {\n let geturl = environment.apiURL + 'calendar/GetEvents';\n geturl = geturl.replace('/V4/', '/V5/');\n let params = new HttpParams();\n params = params.set(\"StartDate\", startdate);\n params = params.set(\"EndDate\", enddate);\n let options = {\n headers: this.headerSharedOficial,\n params: params\n };\n return this.http.get(`${geturl}`, options);\n }\n genericGetAllSharedPessoalEvents(startdate, enddate) {\n let geturl = environment.apiURL + 'calendar/GetEvents';\n geturl = geturl.replace('/V4/', '/V5/');\n let params = new HttpParams();\n params = params.set(\"StartDate\", startdate);\n params = params.set(\"EndDate\", enddate);\n let options = {\n headers: this.headerSharedPessoal,\n params: params\n };\n return this.http.get(`${geturl}`, options);\n }\n getAllSharedEvents(startdate, enddate) {\n var _this7 = this;\n return _asyncToGenerator(function* () {\n let prO = [],\n prP = [];\n for (let calendar of SessionStore.user.SharedCalendars) {\n if (calendar.CalendarName == 'Oficial') {\n prO = yield _this7.getAllSharedOficialEvents(startdate, enddate).toPromise();\n }\n if (calendar.CalendarName == 'Pessoal') {\n prP = yield _this7.getAllSharedPessoalEvents(startdate, enddate).toPromise();\n }\n }\n const resFinal = prO.concat(prP);\n return new Promise(resolve => {\n return resolve(resFinal);\n });\n })();\n }\n getAllSharedOficialEvents(startdate, enddate) {\n let geturl = environment.apiURL + 'calendar/pr';\n geturl = geturl.replace('/V4/', '/V5/');\n let params = new HttpParams();\n params = params.set(\"Start\", startdate);\n params = params.set(\"End\", enddate);\n let options = {\n headers: this.headersSharedOficial,\n params: params\n };\n return this.http.get(`${geturl}`, options);\n }\n getAllSharedPessoalEvents(startdate, enddate) {\n let geturl = environment.apiURL + 'calendar/pr';\n geturl = geturl.replace('/V4/', '/V5/');\n let params = new HttpParams();\n params = params.set(\"Start\", startdate);\n params = params.set(\"End\", enddate);\n let options = {\n headers: this.headersSharedPessoal,\n params: params\n };\n return this.http.get(`${geturl}`, options);\n }\n getRecurrenceTypes() {\n const geturl = environment.apiURL + 'Calendar/RecurrenceTypes';\n let options = {\n headers: this.headers\n };\n return this.http.get(`${geturl}`, options);\n }\n getEvents(calendarname, startdate, enddate) {\n const geturl = environment.apiURL + 'calendar/GetEvents';\n let params = new HttpParams();\n params = params.set(\"CalendarName\", calendarname);\n params = params.set(\"StartDate\", startdate);\n params = params.set(\"EndDate\", enddate);\n let options = {\n headers: this.headers,\n params: params\n };\n return this.http.get(`${geturl}`, options);\n }\n getEvent(eventid) {\n let geturl = environment.apiURL + 'calendar/GetEvent';\n let params = new HttpParams();\n params = params.set(\"EventId\", eventid);\n let options = {\n headers: this.headers,\n params: params\n };\n return this.http.get(`${geturl}`, options);\n }\n genericGetEvent(eventid, calendarId) {\n let geturl = environment.apiURL + 'calendar/GetEvent';\n let params = new HttpParams();\n params = params.set(\"EventId\", eventid);\n const calendar = this.DetectCalendars(calendarId);\n const header = this.makeHeader(calendar);\n if (header) {\n let options = {\n headers: header,\n params: params\n };\n return this.http.get(`${geturl}`, options);\n } else {}\n throw 'error';\n }\n putEvent(event, conflictResolutionMode, sendInvitationsOrCancellationsMode, sharedagenda) {\n const puturl = environment.apiURL + 'calendar/' + (sharedagenda != '' ? sharedagenda : 'PutEvent');\n let params = new HttpParams();\n params = params.set(\"conflictResolutionMode\", conflictResolutionMode.toString());\n params = params.set(\"sendInvitationsOrCancellationsMode\", sendInvitationsOrCancellationsMode.toString());\n let options = {\n headers: this.headers,\n params: params\n };\n return this.http.put(`${puturl}`, event, options);\n }\n editEvent(event, conflictResolutionMode, sendInvitationsOrCancellationsMode, CalendarId) {\n let arrayReq = [];\n arrayReq.push(event);\n const puturl = environment.apiURL + 'calendar/PutEvent';\n let params = new HttpParams();\n params = params.set(\"conflictResolutionMode\", conflictResolutionMode.toString());\n params = params.set(\"sendInvitationsOrCancellationsMode\", sendInvitationsOrCancellationsMode.toString());\n params.set('CalendarId', event.CalendarId);\n params.set('CalendarName', event.CalendarName);\n this.headers['CalendarId'] = event.CalendarId;\n this.headers['CalendarName'] = event.CalendarName;\n if (event.CalendarName == 'Oficial') {\n if (SessionStore.user.Profile == 'MDGPR') {\n this.headers = this.headersMdOficial;\n } else if (SessionStore.user.Profile == 'PR') {\n this.headers = this.headersPrOficial;\n } else {\n const headers = [this.headerSharedOficial, this.headerSharedPessoal, this.headerOwnPessoal, this.headerOwnOficial];\n const header = headers.find(header => {\n return header?.get('CalendarId')?.includes(CalendarId);\n });\n this.headers = header;\n }\n } else {\n if (SessionStore.user.Profile == 'MDGPR') {\n this.headers = this.headersMdPessoal;\n } else if (SessionStore.user.Profile == 'PR') {\n this.headers = this.headersPrPessoal;\n } else {\n const headers = [this.headerSharedOficial, this.headerSharedPessoal, this.headerOwnPessoal, this.headerOwnOficial];\n const header = headers.find(header => {\n return header?.get('CalendarId')?.includes(CalendarId);\n });\n this.headers = header;\n }\n }\n let options = {\n headers: this.headers,\n params: params\n };\n return this.http.put(`${puturl}`, event, options).pipe(catchError(err => {\n this.offlinemanager.storeRequestData('eventEdit', arrayReq);\n throw new Error(err);\n }));\n }\n changeAgenda(body) {\n const puturl = environment.apiURL + 'Calendar/MoveEvent';\n let options = {\n headers: this.headers\n };\n return this.http.post(`${puturl}`, body, options);\n }\n postEventMd(event, calendarName) {\n const puturl = environment.apiURL + 'calendar/md';\n let params = new HttpParams();\n const now = new Date();\n event.TimeZone = now.toString().match(/([A-Z]+[\\+-][0-9]+.*)/)[1];\n params = params.set(\"CalendarName\", calendarName);\n let options;\n switch (calendarName) {\n case 'Oficial':\n options = {\n headers: this.headersMdOficial,\n params: params\n };\n break;\n case 'Pessoal':\n options = {\n headers: this.headersMdPessoal,\n params: params\n };\n break;\n }\n return this.http.post(`${puturl}`, event, options);\n }\n postEventPr(event, calendarName) {\n const puturl = environment.apiURL + 'calendar/pr';\n let params = new HttpParams();\n const now = new Date();\n event.TimeZone = now.toString().match(/([A-Z]+[\\+-][0-9]+.*)/)[1];\n params = params.set(\"CalendarName\", calendarName);\n let options;\n switch (calendarName) {\n case 'Oficial':\n options = {\n headers: this.headersPrOficial,\n params: params\n };\n break;\n case 'Pessoal':\n options = {\n headers: this.headersPrPessoal,\n params: params\n };\n break;\n }\n return this.http.post(`${puturl}`, event, options);\n }\n postEventGeneric(event, calendarName, CalendarId) {\n const puturl = environment.apiURL + 'Calendar/PostEvent';\n let params = new HttpParams();\n const now = new Date();\n event.TimeZone = now.toString().match(/([A-Z]+[\\+-][0-9]+.*)/)[1];\n params = params.set(\"CalendarName\", calendarName);\n let options;\n const calendar = this.DetectCalendars(CalendarId);\n const header = this.makeHeader(calendar);\n options = {\n headers: header,\n params: params\n };\n return this.http.post(`${puturl}`, event, options);\n }\n deleteEvent(eventid, eventDeleteType, calendarName) {\n let arrayReq = [];\n let Object = {\n eventid: eventid,\n eventDeleteType: eventDeleteType,\n calendarName: calendarName\n };\n arrayReq.push(Object);\n const puturl = environment.apiURL + 'calendar/DeleteEvent';\n let params = new HttpParams();\n params = params.set(\"EventId\", eventid);\n // 0 for occurence and 1 for serie (delete all events)\n params = params.set(\"eventDeleteType\", eventDeleteType.toString());\n let options;\n switch (SessionStore.user.Profile) {\n case 'MDGPR':\n if (calendarName == 'Pessoal') {\n options = {\n headers: this.headersMdPessoal,\n params: params\n };\n } else if (calendarName == 'Oficial') {\n options = {\n headers: this.headersMdOficial,\n params: params\n };\n }\n break;\n case 'PR':\n if (calendarName == 'Pessoal') {\n options = {\n headers: this.headersPrPessoal,\n params: params\n };\n } else if (calendarName == 'Oficial') {\n options = {\n headers: this.headersPrOficial,\n params: params\n };\n }\n break;\n }\n return this.http.delete(`${puturl}`, options).pipe(catchError(err => {\n this.offlinemanager.storeRequestData('eventDelete', arrayReq);\n throw new Error(err);\n }));\n }\n genericDeleteEvent(eventid, eventDeleteType, calendarName, calendarId) {\n let arrayReq = [];\n let Object = {\n eventid: eventid,\n eventDeleteType: eventDeleteType,\n calendarName: calendarName\n };\n arrayReq.push(Object);\n const puturl = environment.apiURL + 'calendar/DeleteEvent';\n let params = new HttpParams();\n params = params.set(\"EventId\", eventid);\n // 0 for occurence and 1 for serie (delete all events)\n params = params.set(\"eventDeleteType\", eventDeleteType.toString());\n let options;\n if (SessionStore.user.Profile == 'MDGPR') {\n if (calendarName == 'Pessoal') {\n options = {\n headers: this.headersMdPessoal,\n params: params\n };\n } else if (calendarName == 'Oficial') {\n options = {\n headers: this.headersMdOficial,\n params: params\n };\n }\n } else if (SessionStore.user.Profile == 'PR') {\n if (calendarName == 'Pessoal') {\n options = {\n headers: this.headersPrPessoal,\n params: params\n };\n } else if (calendarName == 'Oficial') {\n options = {\n headers: this.headersPrOficial,\n params: params\n };\n }\n } else {\n const headers = [this.headerSharedOficial, this.headerSharedPessoal, this.headerOwnPessoal, this.headerOwnOficial];\n const header = headers.find(header => {\n return header?.get('CalendarId')?.includes(calendarId);\n });\n if (header) {\n options = {\n headers: header,\n params: params\n };\n return this.http.delete(`${puturl}`, options).pipe(catchError(err => {\n this.offlinemanager.storeRequestData('eventDelete', arrayReq);\n throw new Error(err);\n }));\n } else {}\n throw 'header not found';\n }\n }\n postExpedientEvent(docId, body, sharedagenda, serialNumber, applicationID) {\n const geturl = environment.apiURL + 'calendar/' + (sharedagenda != '' ? sharedagenda : 'CreateEventExpediente') + '/event';\n let params = new HttpParams();\n let options;\n params = params.set(\"DocId\", docId);\n params = params.set(\"SerialNumber\", serialNumber);\n params = params.set(\"applicationID\", applicationID);\n switch (SessionStore.user.Profile) {\n case 'MDGPR':\n if (body.CalendarName == 'Pessoal') {\n options = {\n headers: this.headersMdPessoal,\n params: params\n };\n } else if (body.CalendarName == 'Oficial') {\n options = {\n headers: this.headersMdOficial,\n params: params\n };\n }\n break;\n case 'PR':\n if (body.CalendarName == 'Pessoal') {\n options = {\n headers: this.headersPrPessoal,\n params: params\n };\n } else if (body.CalendarName == 'Oficial') {\n options = {\n headers: this.headersPrOficial,\n params: params\n };\n }\n break;\n }\n return this.http.post(`${geturl}`, body, options);\n }\n genericPostExpedientEvent(docId, body, sharedagenda, serialNumber, applicationID, CalendarId) {\n const geturl = environment.apiURL + 'calendar/expediente';\n let params = new HttpParams();\n let options;\n params = params.set(\"DocId\", docId);\n params = params.set(\"SerialNumber\", serialNumber);\n params = params.set(\"applicationID\", applicationID);\n const headers = [this.headerSharedOficial, this.headerSharedPessoal, this.headerOwnPessoal, this.headerOwnOficial];\n const header = headers.find(header => {\n return header?.get('CalendarId')?.includes(CalendarId);\n });\n options = {\n headers: header,\n params: params\n };\n return this.http.post(`${geturl}`, body, options);\n }\n createTaskEvent(folderId, body, sharedagenda, serialNumber, applicationID) {\n const geturl = environment.apiURL + 'calendar/' + (sharedagenda != '' ? sharedagenda : 'CreateEventExpediente') + '/dispatch';\n let params = new HttpParams();\n let options;\n params = params.set(\"FolderId\", folderId);\n params = params.set(\"SerialNumber\", serialNumber);\n params = params.set(\"applicationID\", applicationID);\n switch (SessionStore.user.Profile) {\n case 'MDGPR':\n if (body.CalendarName == 'Pessoal') {\n options = {\n headers: this.headersMdPessoal,\n params: params\n };\n } else if (body.CalendarName == 'Oficial') {\n options = {\n headers: this.headersMdOficial,\n params: params\n };\n }\n break;\n case 'PR':\n if (body.CalendarName == 'Pessoal') {\n options = {\n headers: this.headersPrPessoal,\n params: params\n };\n } else if (body.CalendarName == 'Oficial') {\n options = {\n headers: this.headersPrOficial,\n params: params\n };\n }\n break;\n }\n return this.http.post(`${geturl}`, body, options);\n }\n genericCreateTaskEvent(folderId, body, sharedagenda, serialNumber, applicationID, CalendarId) {\n const geturl = environment.apiURL + 'calendar/dispatch';\n let params = new HttpParams();\n let options;\n params = params.set(\"FolderId\", folderId);\n params = params.set(\"SerialNumber\", serialNumber);\n params = params.set(\"applicationID\", applicationID);\n const headers = [this.headerSharedOficial, this.headerSharedPessoal, this.headerOwnPessoal, this.headerOwnOficial];\n const header = headers.find(header => {\n return header?.get('CalendarId')?.includes(CalendarId);\n });\n options = {\n headers: header,\n params: params\n };\n return this.http.post(`${geturl}`, body, options);\n }\n postEventToApproveEdit(body) {\n const geturl = environment.apiURL + 'Tasks/EditEventTask';\n let options = {\n headers: this.headers\n };\n return this.http.post(`${geturl}`, body, options);\n }\n};\nEventsService.ctorParameters = () => [{\n type: HttpClient\n}, {\n type: AuthService\n}, {\n type: ChangeProfileService\n}, {\n type: OfflineManagerService\n}];\nEventsService = __decorate([Injectable({\n providedIn: 'root'\n})], EventsService);\nexport { EventsService };","map":{"version":3,"mappings":"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","names":["Injectable","HttpClient","HttpHeaders","HttpParams","environment","AuthService","ChangeProfileService","OfflineManagerService","catchError","SessionStore","EventsService","constructor","http","user","changeProfileService","offlinemanager","setHeader","registerCallback","_this","headers","headersMdOficial","headersMdPessoal","headersPrOficial","headersPrPessoal","headersSharedOficial","headersSharedPessoal","headerOwnOficial","headerOwnPessoal","headerSharedOficial","headerSharedPessoal","set","BasicAuthKey","usersCalendarIds","calendarNames","calendarRole","calendrFullName","calendarIds","calendarNamesAry","calendarNamesType","hasSharedCalendar","hasSharedOficial","hasSharedPessoal","hasOwnCalendar","hasOwnOficial","hasOwnPessoal","Profile","calendar","OwnerCalendars","hasAnyCalendar","CalendarName","CalendarId","CalendarRoleId","sharedCalendar","SharedCalendars","includes","OwnerUserId","push","GetCalendarName","subscribe","e","FullName","myCalendarNames","find","x","Role","objectShared","calendarNamesAryPR","calendarNamesAryNoPr","OwnerCalendar","UserId","length","calendarNamesAryReverse","reverse","keys","DetectCalendars","calendars","concat","makeHeader","header","isMyCalendar","getCalendarOwnNameByCalendarId","isMyEvent","event","getAllPrOficialEvents","startdate","enddate","geturl","apiURL","replace","params","options","get","getAllPrPessoalEvents","getAllPrEvents","prO","prP","_this2","toPromise","resFinal","Promise","resolve","getAllMdOficialEvents","getAllMdPessoalEvents","userid","getAllMdEvents","_this3","Array","isArray","getAllOwnEvents","ownO","ownP","_this4","getAllOwnOficialEvents","getAllOwnPessoalEvents","getEventsByCalendarId","calendarId","agendasCalendars","filter","result","agendasCalendar","_this5","genericGetAllSharedEvents","_this6","genericGetAllSharedOficialEvents","genericGetAllSharedPessoalEvents","getAllSharedEvents","_this7","getAllSharedOficialEvents","getAllSharedPessoalEvents","getRecurrenceTypes","getEvents","calendarname","getEvent","eventid","genericGetEvent","putEvent","conflictResolutionMode","sendInvitationsOrCancellationsMode","sharedagenda","puturl","toString","put","editEvent","arrayReq","pipe","err","storeRequestData","Error","changeAgenda","body","post","postEventMd","calendarName","now","Date","TimeZone","match","postEventPr","postEventGeneric","deleteEvent","eventDeleteType","Object","delete","genericDeleteEvent","postExpedientEvent","docId","serialNumber","applicationID","genericPostExpedientEvent","createTaskEvent","folderId","genericCreateTaskEvent","postEventToApproveEdit","providedIn"],"sourceRoot":"","sources":["C:\\Users\\eudes.inacio\\GabineteDigital\\gabinete-digital-fo\\src\\app\\services\\events.service.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Event, EventToApproveEdit } from '../models/event.model';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable, from } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { EventList } from '../models/agenda/AgendaEventList';\r\nimport { ChangeProfileService } from './change-profile.service';\r\nimport { OfflineManagerService } from 'src/app/services/offline-manager.service';\r\nimport { catchError } from \"rxjs/operators\";\r\nimport { Storage } from '@ionic/storage';\r\nimport { BackgroundService } from 'src/app/services/background.service';\r\nimport { SessionStore } from '../store/session.service';\r\nimport { calendarInterface } from '../models/user.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EventsService {\r\n\r\n authheader = {};\r\n headers: HttpHeaders;\r\n\r\n headersPrOficial: HttpHeaders;\r\n headersPrPessoal: HttpHeaders;\r\n\r\n headersMdOficial: HttpHeaders;\r\n headersMdPessoal: HttpHeaders;\r\n\r\n headerOwnOficial: HttpHeaders;\r\n headerOwnPessoal: HttpHeaders;\r\n\r\n headerSharedOficial: HttpHeaders;\r\n headerSharedPessoal: HttpHeaders;\r\n\r\n headersSharedOficial: HttpHeaders;\r\n headersSharedPessoal: HttpHeaders;\r\n \r\n calendarIds = []\r\n usersCalendarIds = []\r\n \r\n hasSharedCalendar = false;\r\n hasSharedOficial: boolean = false;\r\n hasSharedPessoal: boolean = false;\r\n\r\n hasOwnOficial: boolean = false;\r\n hasOwnPessoal: boolean = false;\r\n hasOwnCalendar = false\r\n\r\n calendarNames = {}\r\n \r\n calendarNamesAry = []\r\n calendarNamesAryNoPr = []\r\n calendarNamesAryReverse = []\r\n calendarNamesAryPR = []\r\n\r\n calendarNamesType = {}\r\n calendarRole = []\r\n calendrFullName = []\r\n\r\n myCalendarNames = {}\r\n hasAnyCalendar = false\r\n\r\n constructor(\r\n private http: HttpClient,\r\n public user: AuthService,\r\n private changeProfileService: ChangeProfileService,\r\n private offlinemanager: OfflineManagerService) {\r\n\r\n this.setHeader()\r\n this.changeProfileService.registerCallback(() => {\r\n this.setHeader()\r\n })\r\n\r\n }\r\n\r\n async setHeader () {\r\n \r\n this.headers = new HttpHeaders();\r\n this.headersMdOficial = new HttpHeaders();\r\n this.headersMdPessoal = new HttpHeaders();\r\n\r\n this.headersPrOficial = new HttpHeaders();\r\n this.headersPrPessoal = new HttpHeaders();\r\n\r\n this.headersSharedOficial = new HttpHeaders();\r\n this.headersSharedPessoal = new HttpHeaders();\r\n\r\n\r\n this.headerOwnOficial= new HttpHeaders();\r\n this.headerOwnPessoal= new HttpHeaders();\r\n \r\n this.headerSharedOficial= new HttpHeaders();\r\n this.headerSharedPessoal= new HttpHeaders();\r\n\r\n this.headers = this.headers.set('Authorization', SessionStore.user.BasicAuthKey);\r\n\r\n this.usersCalendarIds = [];\r\n this.calendarNames = {}\r\n this.calendarRole = []\r\n this.calendrFullName = [];\r\n this.calendarIds = []\r\n \r\n this.calendarNamesAry = []\r\n this.calendarNamesType = {}\r\n\r\n this.hasSharedCalendar = false\r\n this.hasSharedOficial = false\r\n this.hasSharedPessoal = false\r\n\r\n this.hasOwnCalendar = false\r\n this.hasOwnOficial = false\r\n this.hasOwnPessoal = false\r\n\r\n if (SessionStore.user) {\r\n if (SessionStore.user.Profile == 'MDGPR') {\r\n\r\n for (let calendar of SessionStore.user.OwnerCalendars) {\r\n this.hasAnyCalendar = true\r\n\r\n if (calendar.CalendarName == 'Oficial') {\r\n\r\n this.hasOwnOficial = true\r\n\r\n\r\n this.headersMdOficial = this.headersMdOficial.set('Authorization', SessionStore.user.BasicAuthKey);\r\n this.headersMdOficial = this.headersMdOficial.set('CalendarId', calendar.CalendarId);\r\n this.headersMdOficial = this.headersMdOficial.set('CalendarRoleId', calendar.CalendarRoleId);\r\n }\r\n else if (calendar.CalendarName == 'Pessoal') {\r\n\r\n this.hasOwnPessoal = true\r\n\r\n this.headersMdPessoal = this.headersMdPessoal.set('Authorization', SessionStore.user.BasicAuthKey);\r\n this.headersMdPessoal = this.headersMdPessoal.set('CalendarId', calendar.CalendarId);\r\n this.headersMdPessoal = this.headersMdPessoal.set('CalendarRoleId', calendar.CalendarRoleId);\r\n\r\n }\r\n }\r\n \r\n for (let sharedCalendar of SessionStore.user.SharedCalendars) {\r\n this.hasAnyCalendar = true\r\n \r\n if (sharedCalendar.CalendarName == 'Oficial') {\r\n\r\n this.hasSharedOficial = true\r\n\r\n this.headersSharedOficial = this.headersSharedOficial.set('Authorization', SessionStore.user.BasicAuthKey);\r\n this.headersSharedOficial = this.headersSharedOficial.set('CalendarId', sharedCalendar.CalendarId);\r\n this.headersSharedOficial = this.headersSharedOficial.set('CalendarRoleId', sharedCalendar.CalendarRoleId);\r\n }\r\n else if (sharedCalendar.CalendarName == 'Pessoal') {\r\n\r\n this.hasSharedPessoal = true\r\n\r\n this.headersSharedPessoal = this.headersSharedPessoal.set('Authorization', SessionStore.user.BasicAuthKey);\r\n this.headersSharedPessoal = this.headersSharedPessoal.set('CalendarId', sharedCalendar.CalendarId);\r\n this.headersSharedPessoal = this.headersSharedPessoal.set('CalendarRoleId', sharedCalendar.CalendarRoleId);\r\n }\r\n }\r\n\r\n }\r\n\r\n else if (SessionStore.user.Profile == 'PR') {\r\n\r\n for (let calendar of SessionStore.user.OwnerCalendars) {\r\n this.hasAnyCalendar = true\r\n if (calendar.CalendarName == 'Oficial') {\r\n\r\n this.hasOwnOficial = true\r\n\r\n this.headersPrOficial = this.headersPrOficial.set('Authorization', SessionStore.user.BasicAuthKey);\r\n this.headersPrOficial = this.headersPrOficial.set('CalendarId', calendar.CalendarId);\r\n this.headersPrOficial = this.headersPrOficial.set('CalendarRoleId', calendar.CalendarRoleId);\r\n }\r\n else if (calendar.CalendarName == 'Pessoal') {\r\n\r\n this.hasOwnPessoal = true\r\n\r\n this.headersPrPessoal = this.headersPrPessoal.set('Authorization', SessionStore.user.BasicAuthKey);\r\n this.headersPrPessoal = this.headersPrPessoal.set('CalendarId', calendar.CalendarId);\r\n this.headersPrPessoal = this.headersPrPessoal.set('CalendarRoleId', calendar.CalendarRoleId);\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n for (let calendar of SessionStore.user.OwnerCalendars) {\r\n this.hasAnyCalendar = true\r\n if(!this.usersCalendarIds.includes(calendar.OwnerUserId)) {\r\n this.usersCalendarIds.push(calendar.OwnerUserId)\r\n }\r\n\r\n if(!this.calendarIds.includes(calendar.CalendarId)) {\r\n this.calendarIds.push(calendar.CalendarId)\r\n }\r\n\r\n this.hasOwnCalendar = true\r\n\r\n if (calendar.CalendarName == 'Oficial') {\r\n\r\n this.hasOwnOficial = true\r\n\r\n this.headerOwnOficial = this.headerOwnOficial.set('Authorization', SessionStore.user.BasicAuthKey);\r\n this.headerOwnOficial = this.headerOwnOficial.set('CalendarId', calendar.CalendarId);\r\n this.headerOwnOficial = this.headerOwnOficial.set('CalendarRoleId', calendar.CalendarRoleId);\r\n this.headerOwnOficial = this.headerOwnOficial.set('CalendarName', calendar.CalendarName);\r\n }\r\n else if (calendar.CalendarName == 'Pessoal') {\r\n\r\n this.hasOwnPessoal = true\r\n\r\n this.headerOwnPessoal = this.headerOwnPessoal.set('Authorization', SessionStore.user.BasicAuthKey);\r\n this.headerOwnPessoal = this.headerOwnPessoal.set('CalendarId', calendar.CalendarId);\r\n this.headerOwnPessoal = this.headerOwnPessoal.set('CalendarRoleId', calendar.CalendarRoleId);\r\n this.headerOwnPessoal = this.headerOwnPessoal.set('CalendarName', calendar.CalendarName);\r\n }\r\n }\r\n\r\n for (let sharedCalendar of SessionStore.user.SharedCalendars) {\r\n this.hasAnyCalendar = true\r\n\r\n if(!this.usersCalendarIds.includes(sharedCalendar.OwnerUserId)) {\r\n this.usersCalendarIds.push(sharedCalendar.OwnerUserId)\r\n }\r\n\r\n if(!this.calendarIds.includes(sharedCalendar.CalendarId)) {\r\n this.calendarIds.push(sharedCalendar.CalendarId)\r\n }\r\n\r\n this.hasSharedCalendar = true\r\n\r\n if (sharedCalendar.CalendarName == 'Oficial') {\r\n this.hasSharedOficial = true\r\n\r\n this.headerSharedOficial = this.headerSharedOficial.set('Authorization',SessionStore.user.BasicAuthKey);\r\n this.headerSharedOficial = this.headerSharedOficial.set('CalendarId', sharedCalendar.CalendarId);\r\n this.headerSharedOficial = this.headerSharedOficial.set('CalendarRoleId', sharedCalendar.CalendarRoleId);\r\n this.headerSharedOficial = this.headerSharedOficial.set('CalendarName', sharedCalendar.CalendarName);\r\n }\r\n else if (sharedCalendar.CalendarName == 'Pessoal') {\r\n\r\n this.hasSharedPessoal = true\r\n\r\n this.headerSharedPessoal = this.headerSharedPessoal.set('Authorization',SessionStore.user.BasicAuthKey);\r\n this.headerSharedPessoal = this.headerSharedPessoal.set('CalendarId', sharedCalendar.CalendarId);\r\n this.headerSharedPessoal = this.headerSharedPessoal.set('CalendarRoleId', sharedCalendar.CalendarRoleId);\r\n this.headerSharedPessoal = this.headerSharedPessoal.set('CalendarName', sharedCalendar.CalendarName);\r\n }\r\n }\r\n\r\n\r\n for (let sharedCalendar of SessionStore.user.SharedCalendars) {\r\n this.hasAnyCalendar = true\r\n if(sharedCalendar?.OwnerUserId) {\r\n this.GetCalendarName(sharedCalendar.OwnerUserId).subscribe((e)=> {\r\n\r\n this.calendarNames[sharedCalendar.CalendarId] = e.FullName\r\n this.myCalendarNames[sharedCalendar.CalendarId] = e.FullName\r\n \r\n if(!this.calendarNamesAry.find(x => x.Role == e.Role)) {\r\n \r\n \r\n let objectShared = {\r\n \"Fullname\": e.FullName,\r\n \"Role\": e.Role,\r\n \"OwnerUserId\": sharedCalendar.OwnerUserId,\r\n \"RoleId\": sharedCalendar.CalendarRoleId\r\n }\r\n \r\n this.calendarNamesAry.push(objectShared)\r\n\r\n if(e.Role == 'Presidente da República') {\r\n this.calendarNamesAryPR.push(objectShared)\r\n } else {\r\n this.calendarNamesAryNoPr.push(objectShared)\r\n }\r\n \r\n this.calendarNamesType[e.FullName] = {}\r\n }\r\n\r\n this.calendarNamesType[e.FullName][sharedCalendar.CalendarName] = true\r\n this.calendarNamesType[e.FullName][sharedCalendar.CalendarName+'Id'] = sharedCalendar.CalendarId\r\n this.calendarNamesType[e.FullName]['RoleId'] = sharedCalendar.CalendarRoleId\r\n this.calendarNamesType[e.FullName]['OwnerId'] = sharedCalendar.OwnerUserId\r\n })\r\n }\r\n \r\n }\r\n\r\n for (let OwnerCalendar of SessionStore.user.OwnerCalendars) {\r\n this.hasAnyCalendar = true\r\n\r\n this.calendarNames[OwnerCalendar.CalendarId] = 'Meu calendario'\r\n\r\n if(!this.calendarNamesAry.includes('Meu calendario')) {\r\n this.calendarNamesAry.push('Meu calendario')\r\n this.calendarNamesAryNoPr.push('Meu calendario')\r\n this.calendarNamesType['Meu calendario'] = {}\r\n }\r\n\r\n this.calendarNamesType['Meu calendario'][OwnerCalendar.CalendarName] = true\r\n this.calendarNamesType['Meu calendario'][OwnerCalendar.CalendarName+'Id'] = OwnerCalendar.CalendarId\r\n this.calendarNamesType['Meu calendario']['RoleId'] = OwnerCalendar.CalendarRoleId\r\n this.calendarNamesType['Meu calendario']['OwnerId'] = OwnerCalendar.OwnerUserId || SessionStore.user.UserId\r\n }\r\n\r\n\r\n if(SessionStore.user.OwnerCalendars.length == 0 && SessionStore.user.SharedCalendars.length == 0) {\r\n this.hasAnyCalendar = false\r\n } else {\r\n this.hasAnyCalendar = true\r\n }\r\n\r\n \r\n this.calendarNamesAryReverse = this.calendarNamesAry.reverse();\r\n\r\n (() => {\r\n const keys = {}\r\n\r\n for (let e of SessionStore.user.OwnerCalendars) {\r\n if(!keys[e.CalendarId]) {\r\n keys[e.CalendarId] = e.CalendarId\r\n } else {\r\n throw(`Calendar ${e.CalendarId} is repeated for user `+ SessionStore.user.FullName);\r\n }\r\n }\r\n\r\n for (let e of SessionStore.user.SharedCalendars) {\r\n if(!keys[e.CalendarId]) {\r\n keys[e.CalendarId] = e.CalendarId\r\n } else {\r\n throw(`Calendar ${e.CalendarId} is repeated for user `+ SessionStore.user.FullName);\r\n }\r\n }\r\n })();\r\n\r\n \r\n }\r\n }\r\n\r\n\r\n DetectCalendars(CalendarId) {\r\n const calendars = SessionStore.user.OwnerCalendars.concat(SessionStore.user.SharedCalendars)\r\n return calendars.find((e) => e.CalendarId == CalendarId)\r\n }\r\n\r\n makeHeader(calendar: calendarInterface) {\r\n let header = new HttpHeaders();\r\n header = header.set('Authorization', SessionStore.user.BasicAuthKey);\r\n header = header.set('CalendarId', calendar.CalendarId);\r\n header = header.set('CalendarRoleId', calendar.CalendarRoleId);\r\n header = header.set('CalendarName', calendar.CalendarName);\r\n\r\n return header\r\n }\r\n\r\n\r\n isMyCalendar(CalendarId) {\r\n return this.myCalendarNames[CalendarId] || \"\"\r\n }\r\n\r\n getCalendarOwnNameByCalendarId(CalendarId) {\r\n return this.calendarNames[CalendarId] || \"\"\r\n }\r\n\r\n\r\n isMyEvent(event: any) {\r\n \r\n for (let calendar of SessionStore.user.OwnerCalendars) {\r\n if(event.CalendarId == calendar.CalendarId) {\r\n return true\r\n }\r\n }\r\n\r\n for (let sharedCalendar of SessionStore.user.SharedCalendars) {\r\n if(event.CalendarId == sharedCalendar.CalendarId) {\r\n return false\r\n }\r\n }\r\n \r\n return false\r\n\r\n }\r\n\r\n\r\n getAllPrOficialEvents(startdate: string, enddate: string): Observable<EventList[]> {\r\n let geturl = environment.apiURL + 'calendar/pr';\r\n geturl = geturl.replace('/V4/', '/V5/')\r\n\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"Start\", startdate);\r\n params = params.set(\"End\", enddate);\r\n\r\n let options = {\r\n headers: this.headersPrOficial,\r\n params: params\r\n };\r\n return this.http.get<EventList[]>(`${geturl}`, options);\r\n }\r\n\r\n getAllPrPessoalEvents(startdate: string, enddate: string): Observable<EventList[]> {\r\n let geturl = environment.apiURL + 'calendar/pr';\r\n geturl = geturl.replace('/V4/', '/V5/')\r\n\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"Start\", startdate);\r\n params = params.set(\"End\", enddate);\r\n\r\n let options = {\r\n headers: this.headersPrPessoal,\r\n params: params\r\n };\r\n return this.http.get<EventList[]>(`${geturl}`, options);\r\n }\r\n\r\n async getAllPrEvents(startdate: string, enddate: string): Promise<EventList[]> {\r\n\r\n let prO = [], prP = [];\r\n\r\n prO = await this.getAllPrOficialEvents(startdate, enddate).toPromise();\r\n prP = await this.getAllPrPessoalEvents(startdate, enddate).toPromise();\r\n const resFinal = prO.concat(prP);\r\n return new Promise(resolve => {\r\n return resolve(resFinal)\r\n })\r\n }\r\n\r\n getAllMdOficialEvents(startdate: string, enddate: string): Observable<EventList[]> {\r\n let geturl = environment.apiURL + 'calendar/md';\r\n\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"Start\", startdate);\r\n params = params.set(\"End\", enddate);\r\n\r\n let options = {\r\n headers: this.headersMdOficial,\r\n params: params\r\n };\r\n return this.http.get<EventList[]>(`${geturl}`, options);\r\n }\r\n\r\n getAllMdPessoalEvents(startdate: string, enddate: string): any {\r\n let geturl = environment.apiURL + 'calendar/md';\r\n\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"Start\", startdate);\r\n params = params.set(\"End\", enddate);\r\n\r\n let options = {\r\n headers: this.headersMdPessoal,\r\n params: params\r\n };\r\n return this.http.get<any>(`${geturl}`, options)\r\n }\r\n\r\n\r\n GetCalendarName(userid:string) {\r\n\r\n let geturl = environment.apiURL + 'userauthentication/single';\r\n\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"id\", userid);\r\n\r\n let options = {\r\n headers: this.headers,\r\n params: params\r\n }\r\n\r\n return this.http.get<any>(`${geturl}`, options)\r\n }\r\n\r\n async getAllMdEvents(startdate: string, enddate: string) {\r\n\r\n let prO = [], prP = [];\r\n\r\n for (let calendar of SessionStore.user.OwnerCalendars) {\r\n if (calendar.CalendarName == 'Oficial') {\r\n prO = await this.getAllMdOficialEvents(startdate, enddate).toPromise();\r\n if(!Array.isArray(prO)) {\r\n prO = []\r\n }\r\n }\r\n if(calendar.CalendarName == 'Pessoal') {\r\n prP = await this.getAllMdPessoalEvents(startdate, enddate).toPromise();\r\n if(!Array.isArray(prP)) {\r\n prP = []\r\n }\r\n }\r\n }\r\n \r\n const resFinal = prO.concat(prP);\r\n return new Promise(resolve => {\r\n return resolve(resFinal)\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n async getAllOwnEvents(startdate: string, enddate: string) {\r\n\r\n let ownO = [], ownP = [];\r\n\r\n if(this.hasOwnOficial) {\r\n ownO = await this.getAllOwnOficialEvents(startdate, enddate).toPromise();\r\n if(!Array.isArray(ownO)) {\r\n ownO = []\r\n }\r\n }\r\n\r\n if(this.hasOwnPessoal) {\r\n ownP = await this.getAllOwnPessoalEvents(startdate, enddate).toPromise();\r\n if(!Array.isArray(ownP)) {\r\n ownP = []\r\n }\r\n }\r\n\r\n const resFinal = ownO.concat(ownP);\r\n return new Promise(resolve => {\r\n return resolve(resFinal)\r\n });\r\n }\r\n\r\n getAllOwnOficialEvents(startdate: string, enddate: string): Observable<EventList[]> {\r\n let geturl = environment.apiURL + 'calendar/GetEvents';\r\n\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"StartDate\", startdate);\r\n params = params.set(\"EndDate\", enddate);\r\n\r\n\r\n let options = {\r\n headers: this.headerOwnOficial,\r\n params: params\r\n };\r\n return this.http.get<EventList[]>(`${geturl}`, options);\r\n }\r\n\r\n getAllOwnPessoalEvents(startdate: string, enddate: string): any {\r\n let geturl = environment.apiURL + 'calendar/GetEvents';\r\n\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"StartDate\", startdate);\r\n params = params.set(\"EndDate\", enddate);\r\n\r\n let options = {\r\n headers: this.headerOwnPessoal,\r\n params: params\r\n };\r\n return this.http.get<any>(`${geturl}`, options)\r\n }\r\n\r\n\r\n async getEventsByCalendarId( startdate: string, enddate: string, calendarId: any) {\r\n const calendars = SessionStore.user.OwnerCalendars.concat(SessionStore.user.SharedCalendars)\r\n const agendasCalendars = calendars.filter( e => e.CalendarId == calendarId)\r\n\r\n let result = []\r\n\r\n for(let agendasCalendar of agendasCalendars) {\r\n var header = new HttpHeaders();\r\n header = header.set('Authorization', SessionStore.user.BasicAuthKey);\r\n header = header.set('CalendarId', agendasCalendar.CalendarId);\r\n header = header.set('CalendarRoleId', agendasCalendar.CalendarRoleId);\r\n header = header.set('CalendarName', agendasCalendar.CalendarName);\r\n\r\n \r\n let geturl = environment.apiURL + 'calendar/GetEvents';\r\n \r\n let params = new HttpParams();\r\n \r\n params = params.set(\"StartDate\", startdate);\r\n params = params.set(\"EndDate\", enddate);\r\n \r\n let options = {\r\n headers: header,\r\n params: params\r\n };\r\n\r\n const calendar = await this.http.get<Event[]>(`${geturl}`, options).toPromise()\r\n\r\n result = result.concat(calendar)\r\n }\r\n\r\n return result\r\n }\r\n\r\n async genericGetAllSharedEvents(startdate: string, enddate: string) {\r\n\r\n let result = []\r\n\r\n for (let sharedCalendar of SessionStore.user.SharedCalendars) {\r\n\r\n var header = new HttpHeaders();\r\n header = header.set('Authorization', SessionStore.user.BasicAuthKey);\r\n header = header.set('CalendarId', sharedCalendar.CalendarId);\r\n header = header.set('CalendarRoleId', sharedCalendar.CalendarRoleId);\r\n header = header.set('CalendarName', sharedCalendar.CalendarName);\r\n\r\n let geturl = environment.apiURL + 'calendar/GetEvents';\r\n \r\n let params = new HttpParams();\r\n \r\n params = params.set(\"StartDate\", startdate);\r\n params = params.set(\"EndDate\", enddate);\r\n \r\n let options = {\r\n headers: header,\r\n params: params\r\n };\r\n\r\n const calendar = await this.http.get<Event[]>(`${geturl}`, options).toPromise()\r\n\r\n result = result.concat(calendar)\r\n\r\n }\r\n\r\n return new Promise(resolve => {\r\n return resolve(result)\r\n });\r\n }\r\n\r\n genericGetAllSharedOficialEvents(startdate: string, enddate: string): Observable<Event[]> {\r\n let geturl = environment.apiURL + 'calendar/GetEvents';\r\n geturl = geturl.replace('/V4/', '/V5/')\r\n\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"StartDate\", startdate);\r\n params = params.set(\"EndDate\", enddate);\r\n\r\n \r\n\r\n let options = {\r\n headers: this.headerSharedOficial,\r\n params: params\r\n };\r\n\r\n return this.http.get<Event[]>(`${geturl}`, options);\r\n }\r\n\r\n genericGetAllSharedPessoalEvents(startdate: string, enddate: string): Observable<Event[]> {\r\n let geturl = environment.apiURL + 'calendar/GetEvents';\r\n geturl = geturl.replace('/V4/', '/V5/')\r\n\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"StartDate\", startdate);\r\n params = params.set(\"EndDate\", enddate);\r\n\r\n let options = {\r\n headers: this.headerSharedPessoal,\r\n params: params\r\n };\r\n return this.http.get<Event[]>(`${geturl}`, options);\r\n }\r\n\r\n async getAllSharedEvents(startdate: string, enddate: string) {\r\n\r\n let prO = [], prP = [];\r\n\r\n for(let calendar of SessionStore.user.SharedCalendars) {\r\n if (calendar.CalendarName == 'Oficial') {\r\n prO = await this.getAllSharedOficialEvents(startdate, enddate).toPromise();\r\n }\r\n if(calendar.CalendarName == 'Pessoal') {\r\n prP = await this.getAllSharedPessoalEvents(startdate, enddate).toPromise();\r\n }\r\n\r\n }\r\n \r\n const resFinal = prO.concat(prP);\r\n\r\n return new Promise(resolve => {\r\n return resolve(resFinal)\r\n });\r\n }\r\n\r\n getAllSharedOficialEvents(startdate: string, enddate: string): Observable<Event[]> {\r\n let geturl = environment.apiURL + 'calendar/pr';\r\n geturl = geturl.replace('/V4/', '/V5/')\r\n\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"Start\", startdate);\r\n params = params.set(\"End\", enddate);\r\n\r\n let options = {\r\n headers: this.headersSharedOficial,\r\n params: params\r\n };\r\n \r\n\r\n return this.http.get<Event[]>(`${geturl}`, options);\r\n }\r\n\r\n getAllSharedPessoalEvents(startdate: string, enddate: string): Observable<Event[]> {\r\n let geturl = environment.apiURL + 'calendar/pr';\r\n geturl = geturl.replace('/V4/', '/V5/')\r\n\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"Start\", startdate);\r\n params = params.set(\"End\", enddate);\r\n\r\n let options = {\r\n headers: this.headersSharedPessoal,\r\n params: params\r\n };\r\n return this.http.get<Event[]>(`${geturl}`, options);\r\n }\r\n\r\n\r\n getRecurrenceTypes(): any {\r\n const geturl = environment.apiURL + 'Calendar/RecurrenceTypes';\r\n let options = {\r\n headers: this.headers,\r\n };\r\n return this.http.get<any>(`${geturl}`, options);\r\n }\r\n\r\n\r\n getEvents(calendarname: string, startdate: string, enddate: string): Observable<Event[]> {\r\n const geturl = environment.apiURL + 'calendar/GetEvents';\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"CalendarName\", calendarname);\r\n params = params.set(\"StartDate\", startdate);\r\n params = params.set(\"EndDate\", enddate);\r\n\r\n let options = {\r\n headers: this.headers,\r\n params: params\r\n };\r\n return this.http.get<Event[]>(`${geturl}`, options);\r\n }\r\n\r\n getEvent(eventid: string): Observable<Event> {\r\n let geturl = environment.apiURL + 'calendar/GetEvent';\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"EventId\", eventid);\r\n\r\n let options = {\r\n headers: this.headers,\r\n params: params\r\n };\r\n\r\n return this.http.get<Event>(`${geturl}`, options);\r\n }\r\n\r\n genericGetEvent(eventid: string, calendarId: string) {\r\n let geturl = environment.apiURL + 'calendar/GetEvent';\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"EventId\", eventid);\r\n\r\n const calendar = this.DetectCalendars(calendarId)\r\n const header = this.makeHeader(calendar)\r\n \r\n if(header) {\r\n let options = {\r\n headers: header,\r\n params: params\r\n }\r\n \r\n return this.http.get<Event>(`${geturl}`, options);\r\n } else {\r\n\r\n }\r\n\r\n throw('error')\r\n }\r\n\r\n putEvent(event: Event, conflictResolutionMode: number, sendInvitationsOrCancellationsMode: number, sharedagenda: string): Observable<Event> {\r\n const puturl = environment.apiURL + 'calendar/' + ((sharedagenda != '') ? sharedagenda : 'PutEvent');\r\n\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"conflictResolutionMode\", conflictResolutionMode.toString());\r\n params = params.set(\"sendInvitationsOrCancellationsMode\", sendInvitationsOrCancellationsMode.toString());\r\n\r\n let options = {\r\n headers: this.headers,\r\n params: params\r\n };\r\n\r\n return this.http.put<Event>(`${puturl}`, event, options)\r\n }\r\n\r\n editEvent(event: Event, conflictResolutionMode: number, sendInvitationsOrCancellationsMode: number, CalendarId? ): Observable<Event> {\r\n let arrayReq = [];\r\n arrayReq.push(event);\r\n const puturl = environment.apiURL + 'calendar/PutEvent';\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"conflictResolutionMode\", conflictResolutionMode.toString());\r\n params = params.set(\"sendInvitationsOrCancellationsMode\", sendInvitationsOrCancellationsMode.toString());\r\n params.set('CalendarId', event.CalendarId)\r\n params.set('CalendarName', event.CalendarName)\r\n this.headers['CalendarId'] = event.CalendarId\r\n this.headers['CalendarName'] = event.CalendarName\r\n\r\n if (event.CalendarName == 'Oficial') {\r\n if (SessionStore.user.Profile == 'MDGPR') {\r\n this.headers = this.headersMdOficial;\r\n }\r\n else if (SessionStore.user.Profile == 'PR') {\r\n this.headers = this.headersPrOficial;\r\n } else {\r\n \r\n const headers = [\r\n this.headerSharedOficial,\r\n this.headerSharedPessoal,\r\n this.headerOwnPessoal,\r\n this.headerOwnOficial\r\n ] \r\n \r\n const header = headers.find((header)=> {\r\n return header?.get('CalendarId')?.includes(CalendarId)\r\n })\r\n \r\n this.headers = header\r\n }\r\n }\r\n else {\r\n if (SessionStore.user.Profile == 'MDGPR') {\r\n this.headers = this.headersMdPessoal;\r\n }\r\n else if (SessionStore.user.Profile == 'PR') {\r\n this.headers = this.headersPrPessoal;\r\n }\r\n else {\r\n const headers = [\r\n this.headerSharedOficial,\r\n this.headerSharedPessoal,\r\n this.headerOwnPessoal,\r\n this.headerOwnOficial\r\n ] \r\n \r\n const header = headers.find((header)=> {\r\n return header?.get('CalendarId')?.includes(CalendarId)\r\n })\r\n \r\n this.headers = header\r\n }\r\n }\r\n\r\n let options = {\r\n headers: this.headers,\r\n params: params\r\n };\r\n\r\n return this.http.put<Event>(`${puturl}`, event, options).pipe(\r\n catchError(err => {\r\n \r\n this.offlinemanager.storeRequestData('eventEdit', arrayReq);\r\n throw new Error(err);\r\n })\r\n )\r\n }\r\n \r\n\r\n changeAgenda(body: any) {\r\n const puturl = environment.apiURL + 'Calendar/MoveEvent';\r\n let options = {\r\n headers: this.headers,\r\n };\r\n return this.http.post<any>(`${puturl}`, body, options);\r\n }\r\n\r\n postEventMd(event: Event, calendarName: string) {\r\n const puturl = environment.apiURL + 'calendar/md';\r\n let params = new HttpParams();\r\n\r\n const now = new Date();\r\n event.TimeZone = now.toString().match(/([A-Z]+[\\+-][0-9]+.*)/)[1]\r\n\r\n params = params.set(\"CalendarName\", calendarName);\r\n\r\n let options: any;\r\n switch (calendarName) {\r\n case 'Oficial':\r\n \r\n options = {\r\n headers: this.headersMdOficial,\r\n params: params\r\n };\r\n break;\r\n\r\n case 'Pessoal':\r\n \r\n options = {\r\n headers: this.headersMdPessoal,\r\n params: params\r\n };\r\n break;\r\n }\r\n \r\n return this.http.post<string>(`${puturl}`, event, options)\r\n }\r\n\r\n postEventPr(event: Event, calendarName: string) {\r\n const puturl = environment.apiURL + 'calendar/pr';\r\n let params = new HttpParams();\r\n\r\n const now = new Date();\r\n event.TimeZone = now.toString().match(/([A-Z]+[\\+-][0-9]+.*)/)[1]\r\n\r\n params = params.set(\"CalendarName\", calendarName);\r\n\r\n let options: any;\r\n switch (calendarName) {\r\n case 'Oficial':\r\n \r\n options = {\r\n headers: this.headersPrOficial,\r\n params: params\r\n };\r\n break;\r\n\r\n case 'Pessoal':\r\n \r\n options = {\r\n headers: this.headersPrPessoal,\r\n params: params\r\n };\r\n break;\r\n }\r\n\r\n return this.http.post<string>(`${puturl}`, event, options)\r\n }\r\n\r\n\r\n\r\n postEventGeneric(event: Event, calendarName: string, CalendarId) {\r\n const puturl = environment.apiURL + 'Calendar/PostEvent';\r\n let params = new HttpParams();\r\n\r\n const now = new Date();\r\n \r\n event.TimeZone = now.toString().match(/([A-Z]+[\\+-][0-9]+.*)/)[1];\r\n\r\n params = params.set(\"CalendarName\", calendarName);\r\n\r\n let options: any;\r\n\r\n const calendar = this.DetectCalendars(CalendarId)\r\n const header = this.makeHeader(calendar)\r\n\r\n options = {\r\n headers: header,\r\n params: params\r\n };\r\n \r\n return this.http.post<string>(`${puturl}`, event, options)\r\n }\r\n\r\n \r\n\r\n deleteEvent(eventid: string, eventDeleteType: number, calendarName: string) {\r\n let arrayReq = [];\r\n let Object = {\r\n eventid: eventid,\r\n eventDeleteType: eventDeleteType,\r\n calendarName: calendarName\r\n }\r\n arrayReq.push(Object)\r\n const puturl = environment.apiURL + 'calendar/DeleteEvent';\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"EventId\", eventid);\r\n // 0 for occurence and 1 for serie (delete all events)\r\n params = params.set(\"eventDeleteType\", eventDeleteType.toString());\r\n\r\n let options;\r\n\r\n switch (SessionStore.user.Profile) {\r\n case 'MDGPR':\r\n if (calendarName == 'Pessoal') {\r\n options = {\r\n headers: this.headersMdPessoal,\r\n params: params\r\n };\r\n }\r\n else if (calendarName == 'Oficial') {\r\n options = {\r\n headers: this.headersMdOficial,\r\n params: params\r\n };\r\n }\r\n break;\r\n case 'PR':\r\n if (calendarName == 'Pessoal') {\r\n options = {\r\n headers: this.headersPrPessoal,\r\n params: params\r\n };\r\n }\r\n else if (calendarName == 'Oficial') {\r\n options = {\r\n headers: this.headersPrOficial,\r\n params: params\r\n };\r\n }\r\n break;\r\n }\r\n\r\n return this.http.delete(`${puturl}`, options).pipe(\r\n catchError(err => {\r\n \r\n this.offlinemanager.storeRequestData('eventDelete', arrayReq);\r\n throw new Error(err);\r\n })\r\n )\r\n }\r\n\r\n\r\n genericDeleteEvent(eventid: string, eventDeleteType: number, calendarName: string, calendarId: string) {\r\n let arrayReq = [];\r\n let Object = {\r\n eventid: eventid,\r\n eventDeleteType: eventDeleteType,\r\n calendarName: calendarName\r\n }\r\n arrayReq.push(Object)\r\n const puturl = environment.apiURL + 'calendar/DeleteEvent';\r\n let params = new HttpParams();\r\n\r\n params = params.set(\"EventId\", eventid);\r\n // 0 for occurence and 1 for serie (delete all events)\r\n params = params.set(\"eventDeleteType\", eventDeleteType.toString());\r\n\r\n let options;\r\n\r\n if(SessionStore.user.Profile == 'MDGPR') {\r\n if (calendarName == 'Pessoal') {\r\n options = {\r\n headers: this.headersMdPessoal,\r\n params: params\r\n };\r\n }\r\n else if (calendarName == 'Oficial') {\r\n options = {\r\n headers: this.headersMdOficial,\r\n params: params\r\n };\r\n }\r\n }\r\n else if (SessionStore.user.Profile == 'PR') {\r\n if (calendarName == 'Pessoal') {\r\n options = {\r\n headers: this.headersPrPessoal,\r\n params: params\r\n };\r\n }\r\n else if (calendarName == 'Oficial') {\r\n options = {\r\n headers: this.headersPrOficial,\r\n params: params\r\n };\r\n }\r\n }\r\n else {\r\n const headers = [\r\n this.headerSharedOficial,\r\n this.headerSharedPessoal,\r\n this.headerOwnPessoal,\r\n this.headerOwnOficial\r\n ] \r\n \r\n const header = headers.find((header)=> {\r\n return header?.get('CalendarId')?.includes(calendarId)\r\n })\r\n\r\n if (header) {\r\n\r\n\r\n options = {\r\n headers: header,\r\n params: params\r\n };\r\n\r\n return this.http.delete(`${puturl}`, options).pipe(\r\n catchError(err => {\r\n \r\n this.offlinemanager.storeRequestData('eventDelete', arrayReq);\r\n throw new Error(err);\r\n })\r\n )\r\n } else {\r\n \r\n }\r\n\r\n throw('header not found')\r\n\r\n }\r\n\r\n \r\n }\r\n\r\n\r\n postExpedientEvent(docId: any, body: any, sharedagenda: string, serialNumber: any, applicationID: any) {\r\n const geturl = environment.apiURL + 'calendar/' + ((sharedagenda != '') ? sharedagenda : 'CreateEventExpediente') + '/event';\r\n let params = new HttpParams();\r\n let options;\r\n\r\n params = params.set(\"DocId\", docId);\r\n params = params.set(\"SerialNumber\", serialNumber);\r\n params = params.set(\"applicationID\", applicationID);\r\n\r\n switch (SessionStore.user.Profile) {\r\n case 'MDGPR':\r\n if (body.CalendarName == 'Pessoal') {\r\n options = {\r\n headers: this.headersMdPessoal,\r\n params: params\r\n };\r\n }\r\n else if (body.CalendarName == 'Oficial') {\r\n options = {\r\n headers: this.headersMdOficial,\r\n params: params\r\n };\r\n }\r\n break;\r\n case 'PR':\r\n if (body.CalendarName == 'Pessoal') {\r\n options = {\r\n headers: this.headersPrPessoal,\r\n params: params\r\n };\r\n }\r\n else if (body.CalendarName == 'Oficial') {\r\n options = {\r\n headers: this.headersPrOficial,\r\n params: params\r\n };\r\n }\r\n break;\r\n }\r\n return this.http.post<any>(`${geturl}`, body, options)\r\n }\r\n\r\n\r\n genericPostExpedientEvent(docId: any, body: any, sharedagenda: string, serialNumber: any, applicationID: any, CalendarId) {\r\n const geturl = environment.apiURL + 'calendar/expediente';\r\n let params = new HttpParams();\r\n let options;\r\n\r\n params = params.set(\"DocId\", docId);\r\n params = params.set(\"SerialNumber\", serialNumber);\r\n params = params.set(\"applicationID\", applicationID);\r\n\r\n const headers = [\r\n this.headerSharedOficial,\r\n this.headerSharedPessoal,\r\n this.headerOwnPessoal,\r\n this.headerOwnOficial\r\n ] \r\n\r\n const header = headers.find( (header) => {\r\n return header?.get('CalendarId')?.includes(CalendarId)\r\n })\r\n\r\n options = {\r\n headers: header,\r\n params: params\r\n };\r\n\r\n return this.http.post<any>(`${geturl}`, body, options)\r\n }\r\n\r\n createTaskEvent(folderId: any, body: any, sharedagenda: string, serialNumber: any, applicationID: any) {\r\n const geturl = environment.apiURL + 'calendar/' + ((sharedagenda != '') ? sharedagenda : 'CreateEventExpediente') + '/dispatch';\r\n let params = new HttpParams();\r\n let options;\r\n\r\n params = params.set(\"FolderId\", folderId);\r\n params = params.set(\"SerialNumber\", serialNumber);\r\n params = params.set(\"applicationID\", applicationID);\r\n\r\n switch (SessionStore.user.Profile) {\r\n case 'MDGPR':\r\n if (body.CalendarName == 'Pessoal') {\r\n options = {\r\n headers: this.headersMdPessoal,\r\n params: params\r\n };\r\n }\r\n else if (body.CalendarName == 'Oficial') {\r\n options = {\r\n headers: this.headersMdOficial,\r\n params: params\r\n };\r\n }\r\n break;\r\n case 'PR':\r\n if (body.CalendarName == 'Pessoal') {\r\n options = {\r\n headers: this.headersPrPessoal,\r\n params: params\r\n };\r\n }\r\n else if (body.CalendarName == 'Oficial') {\r\n options = {\r\n headers: this.headersPrOficial,\r\n params: params\r\n };\r\n }\r\n break;\r\n }\r\n \r\n return this.http.post<any>(`${geturl}`, body, options)\r\n }\r\n\r\n\r\n\r\n genericCreateTaskEvent(folderId: any, body: any, sharedagenda: string, serialNumber: any, applicationID: any, CalendarId) {\r\n const geturl = environment.apiURL + 'calendar/dispatch';\r\n let params = new HttpParams();\r\n let options;\r\n\r\n params = params.set(\"FolderId\", folderId);\r\n params = params.set(\"SerialNumber\", serialNumber);\r\n params = params.set(\"applicationID\", applicationID);\r\n\r\n const headers = [\r\n this.headerSharedOficial,\r\n this.headerSharedPessoal,\r\n this.headerOwnPessoal,\r\n this.headerOwnOficial\r\n ] \r\n\r\n const header = headers.find((header)=> {\r\n return header?.get('CalendarId')?.includes(CalendarId)\r\n })\r\n\r\n options = {\r\n headers: header,\r\n params: params\r\n }\r\n\r\n return this.http.post<any>(`${geturl}`, body, options)\r\n }\r\n\r\n\r\n\r\n postEventToApproveEdit(body: EventToApproveEdit) {\r\n const geturl = environment.apiURL + 'Tasks/EditEventTask';\r\n\r\n let options = {\r\n headers: this.headers,\r\n };\r\n\r\n return this.http.post<any>(`${geturl}`, body, options)\r\n }\r\n}\r\n"]},"metadata":{},"sourceType":"module"} |