diff --git a/src/app/modals/view-event/view-event.page.ts b/src/app/modals/view-event/view-event.page.ts index b553018ba..44007bdcd 100644 --- a/src/app/modals/view-event/view-event.page.ts +++ b/src/app/modals/view-event/view-event.page.ts @@ -17,6 +17,8 @@ import { RouteService } from 'src/app/services/route.service'; import { SessionStore } from 'src/app/store/session.service'; import { HttpErrorHandle } from 'src/app/services/http-error-handle.service'; import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service'; +import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer'; +import { isHttpError } from 'src/app/services/http.service'; @Component({ selector: 'app-view-event', @@ -119,76 +121,32 @@ export class ViewEventPage implements OnInit { ev.target.complete(); } - async loadEvent() { + @XTracerAsync({name:'ViewEventPage/loadEvent', log: false, bugPrint: true}) + async loadEvent(tracing?: TracingType) { const loader = this.toastService.loading(); - if(this.sesseionStora.user.Profile == 'MDGPR' || this.sesseionStora.user.Profile == 'PR') { - this.eventsService.getEvent(this.eventId).subscribe(res => { - this.loadedEvent = res; - // this.addEventToDb(res); - - loader.remove() - }, (error) => { - - - if (error.status === 0) { - // this.getFromDb(); - } else { - this.toastService.badRequest('Este evento já não existe na sua agenda') - loader.remove() - this.modalController.dismiss('Eevent not Foud'); - this.RouteService.goBack(); - } - loader.remove() - }); - } else { - - if(this.CalendarId) { - - this.eventsService.genericGetEvent(this.eventId, this.CalendarId).subscribe(res => { - this.loadedEvent = res; - // this.addEventToDb(res); - - loader.remove() - }, (error) => { - - if (error.status === 0) { - // this.getFromDb(); - } else { - this.toastService.badRequest('Este evento já não existe na sua agenda') - loader.remove() - this.modalController.dismiss('Eevent not Foud'); - this.RouteService.goBack(); - } - loader.remove() - }); - } else { - - } - - } - - let res = await this.agendaDataRepository.getEventById(this.eventId) if(res.isOk()) { + tracing.setAttribute('outcome', 'success') this.loadedEvent = res.value as any; - // this.addEventToDb(res); - loader.remove() } else { - if (res.error.status === 0) { - // this.getFromDb(); - } else { - this.toastService.badRequest('Este evento já não existe na sua agenda') - loader.remove() - this.modalController.dismiss('Eevent not Foud'); - this.RouteService.goBack(); + tracing.setAttribute('eventId', this.eventId) + tracing.setAttribute('outcome', 'failed') + tracing.bugFlag() + + if(!isHttpError(res.error)) { + this.toastService._badRequest('Pedimos desculpa mas não foi possível executar a acção. Por favor, contacte o apoio técnico. #13') + } else if (isHttpError(res.error)) { + } - loader.remove() + this.modalController.dismiss('Eevent not Foud'); + this.RouteService.goBack(); } + loader.remove() } diff --git a/src/app/models/entiry/agenda/eventToApproveDetails.ts b/src/app/models/entiry/agenda/eventToApproveDetails.ts index f4bf3c15f..af8685184 100644 --- a/src/app/models/entiry/agenda/eventToApproveDetails.ts +++ b/src/app/models/entiry/agenda/eventToApproveDetails.ts @@ -155,8 +155,16 @@ const Attachments = z.object({ FileSize: z.number().optional(), }); +const OwnerSchema = z.object({ + wxUserId: z.number(), + wxFullName: z.string(), + wxeMail: z.string(), + userPhoto: z.string(), +}); + const EventToApproveDetails = z.object({ + owner: OwnerSchema, serialNumber: z.string(), taskStatus: z.string().nullable(), originator: OriginatorSchema, diff --git a/src/app/pages/agenda/agenda.page.ts b/src/app/pages/agenda/agenda.page.ts index 051438953..da3e9a66b 100644 --- a/src/app/pages/agenda/agenda.page.ts +++ b/src/app/pages/agenda/agenda.page.ts @@ -711,7 +711,7 @@ export class AgendaPage implements OnInit { calendarOwnerName: selectedCalendar.wxFullName, endDate: endTime.toISOString(), startDate: startTime.toISOString(), - status: EEventFilterStatus.Approved + status: EEventFilterStatus.AllToCommunicate }, tracing) if(response.isOk()) { diff --git a/src/app/pages/agenda/view-event/view-event.page.html b/src/app/pages/agenda/view-event/view-event.page.html index 5e254426a..174ee753f 100644 --- a/src/app/pages/agenda/view-event/view-event.page.html +++ b/src/app/pages/agenda/view-event/view-event.page.html @@ -96,7 +96,7 @@

{{attach.SourceName || attach.subject || attach.sourceName || 'Sem título'}} - + {{attach.Stakeholders}}

diff --git a/src/app/pages/agenda/view-event/view-event.page.ts b/src/app/pages/agenda/view-event/view-event.page.ts index b08278d2d..aee88781e 100644 --- a/src/app/pages/agenda/view-event/view-event.page.ts +++ b/src/app/pages/agenda/view-event/view-event.page.ts @@ -20,6 +20,8 @@ import { HttpErrorHandle } from 'src/app/services/http-error-handle.service' import { AttachmentsService } from 'src/app/services/attachments.service'; import { DateService } from 'src/app/services/date.service'; import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service'; +import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer'; +import { isHttpError } from 'src/app/services/http.service'; @Component({ selector: 'app-view-event', @@ -189,33 +191,51 @@ export class ViewEventPage implements OnInit { this.TimeZoneString = this.loadedEvent.TimeZone } - async loadEvent() { + @XTracerAsync({name:'ViewEventPage/loadEvent', log: false, bugPrint: true}) + async loadEvent(tracing?: TracingType) { const loader = this.toastService.loading(); - let res = await this.agendaDataRepository.getEventById(this.eventId) + let res = await this.agendaDataRepository.getEventById(this.eventId, tracing) if (res.isOk()) { + tracing.setAttribute('outcome', 'success') console.log('Loaded Event', res.value) loader.remove() /* let changeDate = this.dateService.fixDate(res.value as any) as any */ this.loadedEvent = res.value as any; this.setTimeZone() } else { - this.httpErrorHandle.httpStatusHandle(res.error) - loader.remove() - this.toastService.badRequest('Este evento já não existe na sua agenda') + + tracing.setAttribute('eventId', this.eventId) + if(!isHttpError(res.error)) { + this.toastService._badRequest('Pedimos desculpa mas não foi possível executar a acção. Por favor, contacte o apoio técnico. #13') + console.log(res.error) + } else if (isHttpError(res.error)) { + if(res.error.status == 404) { + this.toastService._badRequest('Este evento já não existe') + } else { + this.httpErrorHandle.httpStatusHandle(res.error) + } + } + + + tracing.setAttribute('outcome', 'failed') + tracing.bugFlag() + + // this.toastService.badRequest('Este evento já não existe na sua agenda') this.RouteService.goBack(); } + loader.remove() } /* loadEvent1() { - - + + if(this.sesseionStora.user.Profile == 'MDGPR' || this.sesseionStora.user.Profile == 'PR') { this.eventsService.getEvent(this.eventId).subscribe(res => { - + res = this.dateService.fixDate(res as any) this.loadedEvent = res; this.setTimeZone() @@ -223,22 +243,22 @@ export class ViewEventPage implements OnInit { }, (error) => { }); } else { - - + + if(this.CalendarId) { this.eventsService.genericGetEvent(this.eventId, this.CalendarId).subscribe(res => { - + res = this.dateService.fixDate(res as any) this.loadedEvent = res; this.setTimeZone() - + }, (error) => { - + }); } - + } - + } */ deleteYesOrNo() { @@ -264,7 +284,7 @@ export class ViewEventPage implements OnInit { } else { this.deleteEvent(false); } - + } }, { @@ -299,7 +319,7 @@ export class ViewEventPage implements OnInit { res.present(); }); } - + } deleteEvent(deleteAll) { @@ -337,7 +357,7 @@ export class ViewEventPage implements OnInit { header: 'Evento removido', buttons: ['OK'] }); - + setTimeout(() => { alert.dismiss(); }, 1500); @@ -347,16 +367,16 @@ export class ViewEventPage implements OnInit { () => { loader.remove(); }); - + } else { - + this.eventsService.genericDeleteEvent(this.loadedEvent.EventId, 0, this.loadedEvent.CalendarName, this.loadedEvent.CalendarId).subscribe(async () => { const alert = await this.alertController.create({ cssClass: 'my-custom-class', header: 'Evento removido', buttons: ['OK'] }); - + setTimeout(() => { alert.dismiss(); }, 1500); @@ -368,8 +388,8 @@ export class ViewEventPage implements OnInit { () => { loader.remove(); }); - - + + } */ } diff --git a/src/app/pages/events/events.page.ts b/src/app/pages/events/events.page.ts index 23c07f86e..52d27d211 100644 --- a/src/app/pages/events/events.page.ts +++ b/src/app/pages/events/events.page.ts @@ -16,6 +16,7 @@ import { ChangeProfileService } from 'src/app/services/change-profile.service'; import { SessionStore } from 'src/app/store/session.service'; import { TaskService } from 'src/app/services/task.service'; import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service'; +import { EEventFilterStatus } from 'src/app/services/Repositorys/Agenda/model/enums'; @Component({ selector: 'app-events', @@ -237,7 +238,8 @@ export class EventsPage implements OnInit { userId: SessionStore.user.UserId, calendarOwnerName: SessionStore.user.FullName, startDate: date.toISOString(), - endDate: new Date(end).toISOString() + endDate: new Date(end).toISOString(), + status: EEventFilterStatus.AllToCommunicate }) if(response.isOk()) { diff --git a/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.ts b/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.ts index 368f9fb0f..eecea2c7d 100644 --- a/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.ts +++ b/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.ts @@ -19,6 +19,7 @@ import { AttachmentsService } from 'src/app/services/attachments.service'; import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service'; import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer'; import { isHttpError } from 'src/app/services/http.service'; +import { EventsService } from 'src/app/services/events.service'; @Component({ selector: 'app-approve-event', @@ -61,7 +62,8 @@ export class ApproveEventPage implements OnInit { private httpErrorHandle: HttpErrorHandle, public TaskService: TaskService, private attachmentsService: AttachmentsService, - public AgendaDataRepositoryService: AgendaDataRepositoryService + public AgendaDataRepositoryService: AgendaDataRepositoryService, + public EventsService: EventsService ) { this.activatedRoute.paramMap.subscribe(params => { // @@ -111,6 +113,14 @@ export class ApproveEventPage implements OnInit { tracing.setAttribute('outcome', 'success') } else if(isHttpError(res.error)) { + tracing.setAttribute('eventId', this.serialNumber) + + if(res.error.status == 404) { + this.toastService._badRequest('Este evento já não existe') + } else { + this.httpErrorHandle.httpStatusHandle(res.error) + } + tracing.setAttribute('outcome', 'failed') tracing.bugFlag() diff --git a/src/app/pages/gabinete-digital/event-list/event-list.page.ts b/src/app/pages/gabinete-digital/event-list/event-list.page.ts index caa96757b..d014ee800 100644 --- a/src/app/pages/gabinete-digital/event-list/event-list.page.ts +++ b/src/app/pages/gabinete-digital/event-list/event-list.page.ts @@ -243,7 +243,7 @@ export class EventListPage implements OnInit { let allEvents = await this.AgendaDataRepositoryService.eventToApproveList({ userId, status: EEventFilterStatus.Pending - }) + }, tracing) if(allEvents.isOk()) { tracing.setAttribute('outcome', 'success') diff --git a/src/app/services/Repositorys/Agenda/agenda-data-repository.service.ts b/src/app/services/Repositorys/Agenda/agenda-data-repository.service.ts index 642ad374d..5cfadae93 100644 --- a/src/app/services/Repositorys/Agenda/agenda-data-repository.service.ts +++ b/src/app/services/Repositorys/Agenda/agenda-data-repository.service.ts @@ -44,17 +44,28 @@ export class AgendaDataRepositoryService { return this.agendaLocalDataSourceService.createCalendar(currentUserCalendar) } - async getEventById(id: string) { + async getEventById(id: string, tracing?: TracingType) { try { const result = await this.agendaDataService.getEvent(id).pipe( map((response) => { - console.log('Response', response.data) - console.log('Output', EventMapper.toDomain(response.data)) - return EventMapper.toDomain(response.data) + EventMapper.toDomain(response) + return EventMapper.toDomain(response) }) ).toPromise() return ok(result) } catch (e) { + if(isHttpError(e)) { + tracing?.setAttribute('status.code', e.status.toString()) + if (e.status == 400) { + tracing.bugFlag() + tracing.setAttribute('outcome', 'failed') + } + } else { + tracing.bugFlag() + tracing.setAttribute('outcome', 'failed') + tracing?.setAttribute('map.error', 'true') + tracing?.setAttribute('map.error.context', JSON.stringify(e)) + } return err(e as HttpErrorResponse) } } @@ -72,7 +83,13 @@ export class AgendaDataRepositoryService { } catch (e) { if(isHttpError(e)) { tracing?.setAttribute('status.code', e.status.toString()) + if (e.status == 400) { + tracing.bugFlag() + tracing.setAttribute('outcome', 'failed') + } } else { + tracing.bugFlag() + tracing.setAttribute('outcome', 'failed') tracing?.setAttribute('map.error', 'true') tracing?.setAttribute('map.error.context', JSON.stringify(e)) } diff --git a/src/app/services/Repositorys/Agenda/agenda-data.service.ts b/src/app/services/Repositorys/Agenda/agenda-data.service.ts index ea135b268..cfe3674b5 100644 --- a/src/app/services/Repositorys/Agenda/agenda-data.service.ts +++ b/src/app/services/Repositorys/Agenda/agenda-data.service.ts @@ -7,7 +7,8 @@ import { SharedCalendarListOutputDTO, SharedCalendarListOutputDTOSchema } from ' import { HttpService } from '../../http.service'; import { APIReturn } from '../../decorator/api-validate-schema.decorator'; import { TracingType } from '../../monitoring/opentelemetry/tracer'; -import { EventListOutputDTOSchema } from './model/eventListDTOOutput'; +import { EventListOutputDTO, EventListOutputDTOSchema } from './model/eventListDTOOutput'; +import { EventOutputDTO } from './model/eventDTOOutput'; @Injectable({ providedIn: 'root' @@ -48,7 +49,7 @@ export class AgendaDataService { } // @APIReturn(EventListOutputDTOSchema, 'get/Events') - getEvents(userId: number, startDate: string, endDate: string, status: number, category: string, type: string, tracing?: TracingType): Observable { + getEvents(userId: number, startDate: string, endDate: string, status: number, category: string, type: string, tracing?: TracingType): Observable { let params = new HttpParams() .set('UserId', userId) @@ -72,7 +73,7 @@ export class AgendaDataService { return this.http.get(`${this.baseUrl}/Events`, { params }); } - getEvent(id: string): Observable { + getEvent(id: string): Observable { return this.http.get(`${this.baseUrl}/Events/${id}`); } diff --git a/src/app/services/Repositorys/Agenda/mapper/EventDetailsMapper.ts b/src/app/services/Repositorys/Agenda/mapper/EventDetailsMapper.ts index 5080b35d5..af0712093 100644 --- a/src/app/services/Repositorys/Agenda/mapper/EventDetailsMapper.ts +++ b/src/app/services/Repositorys/Agenda/mapper/EventDetailsMapper.ts @@ -53,7 +53,9 @@ export class EventMapper { } } + return { + "owner": dto.owner, "HasAttachments": dto.hasAttachments, "EventComunicationId": 1682, "EventId": dto.id, diff --git a/src/app/services/Repositorys/Agenda/mapper/EventToApproveDetailsMapper.ts b/src/app/services/Repositorys/Agenda/mapper/EventToApproveDetailsMapper.ts index cd1679b4c..2334fa0b4 100644 --- a/src/app/services/Repositorys/Agenda/mapper/EventToApproveDetailsMapper.ts +++ b/src/app/services/Repositorys/Agenda/mapper/EventToApproveDetailsMapper.ts @@ -28,6 +28,11 @@ export class EventToApproveDetailsMapper { } let color; + if(dto.ownerType == EEventOwnerType.PR) { + color = 'PR' + } else { + color = 'MDGPR' + } // if(dto.ownerType != 'PR') { let ownerType; @@ -74,6 +79,7 @@ export class EventToApproveDetailsMapper { return { + "owner": dto.owner, "serialNumber": dto.id, "taskStatus": taskStatus, "originator": { diff --git a/src/app/services/auth.service.ts b/src/app/services/auth.service.ts index 04657ed71..a9357580d 100644 --- a/src/app/services/auth.service.ts +++ b/src/app/services/auth.service.ts @@ -186,7 +186,7 @@ export class AuthService { this.RochetChatConnectorService.logout(); this.RochetChatConnectorService.connect(); this.RochetChatConnectorService.login().then((message: any) => { - console.log('Chat login', message) + // console.log('Chat login', message) SessionStore.user.RochetChatUserId = message.result.id SessionStore.save() diff --git a/src/app/services/events.service.ts b/src/app/services/events.service.ts index afb01d3da..f54fea5f7 100644 --- a/src/app/services/events.service.ts +++ b/src/app/services/events.service.ts @@ -420,7 +420,7 @@ export class EventsService { isMyEvent(event: any) { const data: any = event - return data.Organizer.Id == SessionStore.user.UserId + return data.owner.wxUserId == SessionStore.user.UserId } diff --git a/src/app/services/monitoring/opentelemetry/tracer.ts b/src/app/services/monitoring/opentelemetry/tracer.ts index c11dae081..19dcca15d 100644 --- a/src/app/services/monitoring/opentelemetry/tracer.ts +++ b/src/app/services/monitoring/opentelemetry/tracer.ts @@ -4,6 +4,7 @@ import { Tracer, Span } from '@opentelemetry/sdk-trace-base'; import { OpentelemetryAgendaProvider } from './opentelemetry'; import { Device, DeviceInfo } from '@capacitor/device'; + const tracerInstance = OpentelemetryAgendaProvider.getTracer('example-tracer-hole', '111', { }) @@ -81,12 +82,18 @@ export function XTracerAsync({ name, log, bugPrint }: any, p0?: any) { try { const result = await originalMethod.apply(this, args); - tracing.finish() + if(!window.location.origin.includes('https')) { + tracing.finish() + } + return result } catch (e) { - tracing.finish() + + if(!window.location.origin.includes('https')) { + tracing.finish() + } console.error(e); return false } @@ -162,12 +169,18 @@ export function XTracer({name, log, bugPrint}: any) { try { const result = originalMethod.apply(this, args); - tracing.finish() + + if(!window.location.origin.includes('https')) { + tracing.finish() + } return result } catch (e) { - tracing.finish() + + if(!window.location.origin.includes('https')) { + tracing.finish() + } console.error(e); return false } diff --git a/src/app/services/task.service.ts b/src/app/services/task.service.ts index a3441e5e1..2c457c5f4 100644 --- a/src/app/services/task.service.ts +++ b/src/app/services/task.service.ts @@ -334,7 +334,7 @@ export class TaskService { let allEvents = await this.AgendaDataRepositoryService.eventToApproveList({ userId, status: EEventFilterStatus.Pending - }) + }, tracing) if(allEvents.isOk()) { tracing.setAttribute('outcome', 'success') diff --git a/src/app/shared/agenda/approve-event/approve-event.page.ts b/src/app/shared/agenda/approve-event/approve-event.page.ts index cb3282a1d..5b5133111 100644 --- a/src/app/shared/agenda/approve-event/approve-event.page.ts +++ b/src/app/shared/agenda/approve-event/approve-event.page.ts @@ -13,6 +13,9 @@ import { HttpErrorHandle } from 'src/app/services/http-error-handle.service'; import { TaskService } from 'src/app/services/task.service' import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service'; import { EventToApproveDetails } from 'src/app/models/entiry/agenda/eventToApproveDetails'; +import { EventsService } from 'src/app/services/events.service'; +import { isHttpError } from 'src/app/services/http.service'; +import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer'; @Component({ selector: 'app-approve-event', @@ -53,7 +56,9 @@ export class ApproveEventPage implements OnInit { public ThemeService: ThemeService, private httpErroHandle: HttpErrorHandle, public TaskService: TaskService, - private agendaDataRepository: AgendaDataRepositoryService + private agendaDataRepository: AgendaDataRepositoryService, + public EventsService: EventsService, + private httpErrorHandle: HttpErrorHandle, ) { // Event to approve list @@ -77,19 +82,33 @@ export class ApproveEventPage implements OnInit { this.modalController.dismiss(); } - async getTask() { + @XTracerAsync({name:'ApproveEventPage/getTask', log: false, bugPrint: true}) + async getTask(tracing?: TracingType) { - const res = await this.agendaDataRepository.getEventToApproveById(this.serialNumber) + const res = await this.agendaDataRepository.getEventToApproveById(this.serialNumber, tracing) if (res.isOk()) { this.loadedEvent = res.value; - console.log('attachment', res.value) this.loadedAttachments = this.loadedEvent.Attachments this.today = new Date(res.value.workflowInstanceDataFields.StartDate); // this.customDate = this.days[this.today.getDay()] + ", " + this.today.getDate() + " de " + (this.months[this.today.getMonth()]); + tracing.setAttribute('outcome', 'success') } else { - console.log(res.error.status) + tracing.setAttribute('eventId', this.serialNumber) + + if(!isHttpError(res.error)) { + this.toastService._badRequest('Pedimos desculpa mas não foi possível executar a acção. Por favor, contacte o apoio técnico. #133') + console.log(res.error) + } else if (isHttpError(res.error)) { + + if(res.error.status == 404) { + this.toastService._badRequest('Este evento já não existe') + } else { + this.httpErrorHandle.httpStatusHandle(res.error) + } + + } } } diff --git a/src/app/shared/agenda/event-list/event-list.page.ts b/src/app/shared/agenda/event-list/event-list.page.ts index 5beb394ab..ae52b4a7e 100644 --- a/src/app/shared/agenda/event-list/event-list.page.ts +++ b/src/app/shared/agenda/event-list/event-list.page.ts @@ -146,7 +146,7 @@ export class EventListPage implements OnInit { let allEvents = await this.AgendaDataRepositoryService.eventToApproveList({ userId, status: EEventFilterStatus.Pending - }) + }, tracing) if(allEvents.isOk()) { tracing.setAttribute('outcome', 'success') diff --git a/src/app/shared/agenda/view-event/view-event.page.ts b/src/app/shared/agenda/view-event/view-event.page.ts index eb0fe89cf..dc0d867a9 100644 --- a/src/app/shared/agenda/view-event/view-event.page.ts +++ b/src/app/shared/agenda/view-event/view-event.page.ts @@ -20,6 +20,8 @@ import { EventController } from 'src/app/controller/event' import { DateService } from 'src/app/services/date.service'; import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service'; import { SearchList_v2 } from 'src/app/models/search-document'; +import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer'; +import { isHttpError } from 'src/app/services/http.service'; @Component({ selector: 'app-view-event', @@ -68,7 +70,7 @@ export class ViewEventPage implements OnInit { private httpErrorHandle: HttpErrorHandle, private router: Router, private dateService: DateService, - private agendaDataRepository: AgendaDataRepositoryService + private agendaDataRepository: AgendaDataRepositoryService, ) { this.isEventEdited = false; this.loadedEvent = new Event(); @@ -124,29 +126,47 @@ export class ViewEventPage implements OnInit { setTimeZone() { this.TimeZoneString = this.loadedEvent.TimeZone } - async loadEvent() { + @XTracerAsync({name:'AgendaPage/loadEvent', log: false, bugPrint: true}) + async loadEvent(tracing?: TracingType) { - let res = await this.agendaDataRepository.getEventById(this.eventId) + let res = await this.agendaDataRepository.getEventById(this.eventId, tracing) if(res.isOk()) { - console.log('Loaded Event', res.value) - console.log('newAttahcmentList', res.value.Attachments) + tracing.setAttribute('outcome', 'success') /* let changeDate = this.dateService.fixDate(res.value as any) as any */ this.loadedEvent = res.value as any; this.setTimeZone() } else { + + tracing.setAttribute('eventId', this.eventId) + if(!isHttpError(res.error)) { + this.toastService._badRequest('Pedimos desculpa mas não foi possível executar a acção. Por favor, contacte o apoio técnico. #133') + console.log(res.error) + } else if (isHttpError(res.error)) { + + if(res.error.status == 404) { + this.toastService._badRequest('Este evento já não existe') + } else { + this.httpErrorHandle.httpStatusHandle(res.error) + } + + } + + tracing.setAttribute('outcome', 'failed') + tracing.bugFlag() + this.viewEventDetailDismiss.emit({ type: 'close' }) - console.log(res.error) + } } deleteYesOrNo() { - if (this.loadedEvent.IsRecurring) { + if (this.loadedEvent.IsRecurring) { this.alertController.create({ header: 'Eliminar evento?', message: 'Este evento tem recorrência, deseja eliminar a Sequência de eventos?', @@ -200,7 +220,7 @@ export class ViewEventPage implements OnInit { res.present(); }); } - + } deleteEvent_v2(deleteAll) {