4485 create a custom resolver for calendar events (#4568)

* create timeline calendar event resolver

* working on getCalendarEventsFromPersonIds

* add count query

* add calendarEventVisibility and add typing

* update calendarEvent dto

* modify calendarEvent dto

* compute calendar event visibility

* fix types

* add FieldMetadata in timeline calendar dtos and create queries and fragments

* remove fieldMatadata

* fix naming

* update resolver

* add getCalendarEventsFromCompanyId

* fix queries

* refactor queries

* fix visibility

* fix calendar event attendees bug

* visibility is working

* remove @IDField

* update gql queries

* update dto

* add error

* add enum

* throw http exception

* modify error

* Refactor calendar event visibility check

* use enum
This commit is contained in:
bosiraphael
2024-03-19 18:34:00 +01:00
committed by GitHub
parent e579554d47
commit 4ab426c52a
15 changed files with 785 additions and 5 deletions

View File

@ -0,0 +1,13 @@
import { gql } from '@apollo/client';
export const attendeeFragment = gql`
fragment AttendeeFragment on TimelineCalendarEventAttendee {
personId
workspaceMemberId
firstName
lastName
displayName
avatarUrl
handle
}
`;

View File

@ -0,0 +1,19 @@
import { gql } from '@apollo/client';
import { attendeeFragment } from '@/activities/calendar/queries/fragments/attendeeFragment';
export const calendarEventFragment = gql`
fragment CalendarEventFragment on TimelineCalendarEvent {
id
title
description
location
startsAt
endsAt
isFullDay
attendees {
...AttendeeFragment
}
}
${attendeeFragment}
`;

View File

@ -0,0 +1,13 @@
import { gql } from '@apollo/client';
import { calendarEventFragment } from '@/activities/calendar/queries/fragments/calendarEventFragment';
export const timelineCalendarEventWithTotalFragment = gql`
fragment TimelineCalendarEventsWithTotalFragment on TimelineCalendarEventsWithTotal {
totalNumberOfCalendarEvents
timelineCalendarEvents {
...CalendarEventFragment
}
}
${calendarEventFragment}
`;

View File

@ -0,0 +1,20 @@
import { gql } from '@apollo/client';
import { timelineCalendarEventWithTotalFragment } from '@/activities/calendar/queries/fragments/calendarEventFragmentWithTotalFragment';
export const getTimelineCalendarEventsFromCompanyId = gql`
query GetTimelineCalendarEventsFromCompanyId(
$companyId: ID!
$page: Int!
$pageSize: Int!
) {
getTimelineCalendarEventsFromCompanyId(
companyId: $companyId
page: $page
pageSize: $pageSize
) {
...TimelineCalendarEventsWithTotalFragment
}
}
${timelineCalendarEventWithTotalFragment}
`;

View File

@ -0,0 +1,20 @@
import { gql } from '@apollo/client';
import { timelineCalendarEventWithTotalFragment } from '@/activities/calendar/queries/fragments/calendarEventFragmentWithTotalFragment';
export const getTimelineCalendarEventsFromPersonId = gql`
query GetTimelineCalendarEventsFromPersonId(
$personId: ID!
$page: Int!
$pageSize: Int!
) {
getTimelineCalendarEventsFromPersonId(
personId: $personId
page: $page
pageSize: $pageSize
) {
...TimelineCalendarEventsWithTotalFragment
}
}
${timelineCalendarEventWithTotalFragment}
`;