diff --git a/schema.graphql b/schema.graphql index 36d5b599e3d..54959165edf 100644 --- a/schema.graphql +++ b/schema.graphql @@ -2,23 +2,6 @@ directive @auth on FIELD_DEFINITION directive @role(requires: UserType) on FIELD_DEFINITION -type ActionItem { - _id: ID! - assignedBy: User! - assignedTo: User! - assignmentDate: Date - category: Category! - completed: Boolean - completionDate: Date - createdAt: Date! - createdBy: User! - dueDate: Date - event: Event - postCompletionNotes: String - preCompletionNotes: String - updatedAt: Date! -} - type Address { city: String countryCode: CountryCode @@ -67,16 +50,6 @@ type AuthData { user: User! } -type Category { - _id: ID! - category: String! - createdAt: Date! - createdBy: User! - disabled: Boolean! - org: Organization! - updatedAt: Date! -} - type CheckIn { _id: ID! allotedRoom: String @@ -125,17 +98,6 @@ type ConnectionPageInfo { scalar CountryCode -input CreateActionItemInput { - assignedTo: ID! - assignmentDate: Date - completed: Boolean - completionDate: Date - dueDate: Date - event: ID - postCompletionNotes: String - preCompletionNotes: String -} - input CreateUserTagInput { name: String! organizationId: ID! @@ -231,7 +193,6 @@ interface Error { type Event { _id: ID! - actionItems: [ActionItem] admins(adminId: ID): [User] allDay: Boolean! attendees: [User!]! @@ -505,10 +466,8 @@ type Mutation { blockUser(organizationId: ID!, userId: ID!): User! cancelMembershipRequest(membershipRequestId: ID!): MembershipRequest! checkIn(data: CheckInInput!): CheckIn! - createActionItem(categoryId: ID!, data: CreateActionItemInput!): ActionItem! createAdmin(data: UserAndOrganizationInput!): User! createAdvertisement(endDate: Date!, link: String!, name: String!, orgId: ID!, startDate: Date!, type: String!): Advertisement! - createCategory(category: String!, orgId: ID!): Category! createComment(data: CommentInput!, postId: ID!): Comment createDirectChat(data: createChatInput!): DirectChat! createDonation(amount: Float!, nameOfOrg: String!, nameOfUser: String!, orgId: ID!, payPalId: ID!, userId: ID!): Donation! @@ -536,7 +495,6 @@ type Mutation { registerForEvent(id: ID!): Event! rejectAdmin(id: ID!): Boolean! rejectMembershipRequest(membershipRequestId: ID!): MembershipRequest! - removeActionItem(id: ID!): ActionItem! removeAdmin(data: UserAndOrganizationInput!): User! removeAdvertisement(id: ID!): Advertisement removeComment(id: ID!): Comment @@ -566,8 +524,6 @@ type Mutation { unlikeComment(id: ID!): Comment unlikePost(id: ID!): Post unregisterForEventByUser(id: ID!): Event! - updateActionItem(data: UpdateActionItemInput!, id: ID!): ActionItem - updateCategory(data: UpdateCategoryInput!, id: ID!): Category updateEvent(data: UpdateEventInput, id: ID!): Event! updateLanguage(languageCode: String!): User! updateOrganization(data: UpdateOrganizationInput, file: String, id: ID!): Organization! @@ -586,7 +542,6 @@ input OTPInput { type Organization { _id: ID! - actionCategories: [Category] admins(adminId: ID): [User] apiUrl: URL! blockedUsers: [User] @@ -816,11 +771,7 @@ input PostWhereInput { } type Query { - actionItem(id: ID!): ActionItem - actionItemsByEvent(eventId: ID!): [ActionItem] adminPlugin(orgId: ID!): [Plugin] - categoriesByOrganization(orgId: ID!): [Category] - category(id: ID!): Category checkAuth: User! customDataByOrganization(organizationId: ID!): [UserCustomData!]! customFieldsByOrganization(id: ID!): [OrganizationCustomField] @@ -909,19 +860,6 @@ type UnauthorizedError implements Error { message: String! } -input UpdateActionItemInput { - assignedTo: ID - completed: Boolean - dueDate: Date - postCompletionNotes: String - preCompletionNotes: String -} - -input UpdateCategoryInput { - category: String - disabled: Boolean -} - input UpdateEventInput { allDay: Boolean description: String diff --git a/src/models/ActionItem.ts b/src/models/ActionItem.ts index def28541abd..705cb815904 100644 --- a/src/models/ActionItem.ts +++ b/src/models/ActionItem.ts @@ -19,7 +19,7 @@ export interface InterfaceActionItem { dueDate: Date; completionDate: Date; completed: boolean; - event: PopulatedDoc; + eventId: PopulatedDoc; createdBy: PopulatedDoc; createdAt: Date; updatedAt: Date; @@ -36,7 +36,7 @@ export interface InterfaceActionItem { * @param dueDate - Due date. * @param completionDate - Completion date. * @param completed - Whether the ActionItem has been completed. - * @param event - Event to which the ActionItem is related, refer to the `Event` model. + * @param eventId - Event to which the ActionItem is related, refer to the `Event` model. * @param createdBy - User who created the ActionItem, refer to the `User` model. * @param createdAt - Timestamp when the ActionItem was created. * @param updatedAt - Timestamp when the ActionItem was last updated. @@ -81,7 +81,7 @@ const actionItemSchema = new Schema( type: Boolean, default: false, }, - event: { + eventId: { type: Schema.Types.ObjectId, ref: "Event", }, diff --git a/src/resolvers/ActionItem/event.ts b/src/resolvers/ActionItem/event.ts index dee1a021fc5..e79144e5a90 100644 --- a/src/resolvers/ActionItem/event.ts +++ b/src/resolvers/ActionItem/event.ts @@ -3,6 +3,6 @@ import { Event } from "../../models"; export const event: ActionItemResolvers["event"] = async (parent) => { return Event.findOne({ - _id: parent.event, + _id: parent.eventId, }).lean(); }; diff --git a/src/resolvers/Mutation/createActionItem.ts b/src/resolvers/Mutation/createActionItem.ts index c928ff3c4bf..176cb1f8644 100644 --- a/src/resolvers/Mutation/createActionItem.ts +++ b/src/resolvers/Mutation/createActionItem.ts @@ -91,16 +91,16 @@ export const createActionItem: MutationResolvers["createActionItem"] = async ( let currentUserIsEventAdmin = false; - if (args.data.event) { + if (args.data.eventId) { let currEvent: InterfaceEvent | null; - const eventFoundInCache = await findEventsInCache([args.data.event]); + const eventFoundInCache = await findEventsInCache([args.data.eventId]); currEvent = eventFoundInCache[0]; if (eventFoundInCache[0] === null) { currEvent = await Event.findOne({ - _id: args.data.event, + _id: args.data.eventId, }).lean(); if (currEvent !== null) { @@ -153,14 +153,14 @@ export const createActionItem: MutationResolvers["createActionItem"] = async ( postCompletionNotes: args.data.postCompletionNotes, dueDate: args.data.dueDate, completionDate: args.data.completionDate, - event: args.data.event, + eventId: args.data.eventId, createdBy: context.userId, }); - if (args.data.event) { + if (args.data.eventId) { await Event.findOneAndUpdate( { - _id: args.data.event, + _id: args.data.eventId, }, { $push: { actionItems: createActionItem._id }, diff --git a/src/resolvers/Mutation/removeActionItem.ts b/src/resolvers/Mutation/removeActionItem.ts index 62b603919a1..9a3901a5aee 100644 --- a/src/resolvers/Mutation/removeActionItem.ts +++ b/src/resolvers/Mutation/removeActionItem.ts @@ -64,16 +64,16 @@ export const removeActionItem: MutationResolvers["removeActionItem"] = async ( let currentUserIsEventAdmin = false; - if (actionItem.event) { + if (actionItem.eventId) { let currEvent: InterfaceEvent | null; - const eventFoundInCache = await findEventsInCache([actionItem.event]); + const eventFoundInCache = await findEventsInCache([actionItem.eventId]); currEvent = eventFoundInCache[0]; if (eventFoundInCache[0] === null) { currEvent = await Event.findOne({ - _id: actionItem.event, + _id: actionItem.eventId, }).lean(); if (currEvent !== null) { @@ -110,10 +110,10 @@ export const removeActionItem: MutationResolvers["removeActionItem"] = async ( ); } - if (actionItem.event) { + if (actionItem.eventId) { await Event.updateOne( { - _id: actionItem.event, + _id: actionItem.eventId, }, { $pull: { actionItems: actionItem._id }, diff --git a/src/resolvers/Mutation/updateActionItem.ts b/src/resolvers/Mutation/updateActionItem.ts index a53623cad66..3a3e742587e 100644 --- a/src/resolvers/Mutation/updateActionItem.ts +++ b/src/resolvers/Mutation/updateActionItem.ts @@ -115,16 +115,16 @@ export const updateActionItem: MutationResolvers["updateActionItem"] = async ( let currentUserIsEventAdmin = false; - if (actionItem.event) { + if (actionItem.eventId) { let currEvent: InterfaceEvent | null; - const eventFoundInCache = await findEventsInCache([actionItem.event]); + const eventFoundInCache = await findEventsInCache([actionItem.eventId]); currEvent = eventFoundInCache[0]; if (eventFoundInCache[0] === null) { currEvent = await Event.findOne({ - _id: actionItem.event, + _id: actionItem.eventId, }).lean(); if (currEvent !== null) { diff --git a/src/resolvers/Query/actionItemsByEvent.ts b/src/resolvers/Query/actionItemsByEvent.ts index 12587000b33..d031dfdb782 100644 --- a/src/resolvers/Query/actionItemsByEvent.ts +++ b/src/resolvers/Query/actionItemsByEvent.ts @@ -11,7 +11,7 @@ export const actionItemsByEvent: QueryResolvers["actionItemsByEvent"] = async ( args ) => { const actionItems = await ActionItem.find({ - event: args.eventId, + eventId: args.eventId, }).lean(); return actionItems; diff --git a/src/typeDefs/inputs.ts b/src/typeDefs/inputs.ts index 3d139847131..23944165d41 100644 --- a/src/typeDefs/inputs.ts +++ b/src/typeDefs/inputs.ts @@ -43,7 +43,7 @@ export const inputs = gql` dueDate: Date completionDate: Date completed: Boolean - event: ID + eventId: ID } input CursorPaginationInput { diff --git a/src/typeDefs/types.ts b/src/typeDefs/types.ts index a225e19d7d9..1a4a884ba40 100644 --- a/src/typeDefs/types.ts +++ b/src/typeDefs/types.ts @@ -19,9 +19,9 @@ export const types = gql` # Action Item for a Category type ActionItem { _id: ID! - assignedTo: User! - assignedBy: User! - category: Category! + assignedTo: User + assignedBy: User + category: Category preCompletionNotes: String postCompletionNotes: String assignmentDate: Date @@ -29,7 +29,7 @@ export const types = gql` completionDate: Date completed: Boolean event: Event - createdBy: User! + createdBy: User createdAt: Date! updatedAt: Date! } @@ -132,14 +132,14 @@ export const types = gql` latitude: Latitude longitude: Longitude organization: Organization - creator: User! - attendees: [User!]! + creator: User + attendees: [User!] # For each attendee, gives information about whether he/she has checked in yet or not - attendeesCheckInStatus: [CheckInStatus!]! + attendeesCheckInStatus: [CheckInStatus!] admins(adminId: ID): [User] actionItems: [ActionItem] status: Status! - feedback: [Feedback!]! + feedback: [Feedback!] averageFeedbackScore: Float } @@ -221,7 +221,7 @@ export const types = gql` description: String! location: String isPublic: Boolean! - creator: User! + creator: User members: [User] admins(adminId: ID): [User] actionCategories: [Category] @@ -229,7 +229,7 @@ export const types = gql` blockedUsers: [User] visibleInSearch: Boolean! apiUrl: URL! - createdAt: DateTime + createdAt: DateTime! pinnedPosts: [Post] userTags( after: String @@ -237,7 +237,7 @@ export const types = gql` first: PositiveInt last: PositiveInt ): UserTagsConnection - customFields: [OrganizationCustomField!]! + customFields: [OrganizationCustomField!] } type OrganizationCustomField { @@ -334,9 +334,9 @@ export const types = gql` type Category { _id: ID! category: String! - org: Organization! + org: Organization disabled: Boolean! - createdBy: User! + createdBy: User createdAt: Date! updatedAt: Date! } diff --git a/src/types/generatedGraphQLTypes.ts b/src/types/generatedGraphQLTypes.ts index 0ecb5e6f772..61056166fd0 100644 --- a/src/types/generatedGraphQLTypes.ts +++ b/src/types/generatedGraphQLTypes.ts @@ -54,14 +54,14 @@ export type Scalars = { export type ActionItem = { __typename?: 'ActionItem'; _id: Scalars['ID']; - assignedBy: User; - assignedTo: User; + assignedBy?: Maybe; + assignedTo?: Maybe; assignmentDate?: Maybe; - category: Category; + category?: Maybe; completed?: Maybe; completionDate?: Maybe; createdAt: Scalars['Date']; - createdBy: User; + createdBy?: Maybe; dueDate?: Maybe; event?: Maybe; postCompletionNotes?: Maybe; @@ -125,9 +125,9 @@ export type Category = { _id: Scalars['ID']; category: Scalars['String']; createdAt: Scalars['Date']; - createdBy: User; + createdBy?: Maybe; disabled: Scalars['Boolean']; - org: Organization; + org?: Maybe; updatedAt: Scalars['Date']; }; @@ -187,7 +187,7 @@ export type CreateActionItemInput = { completed?: InputMaybe; completionDate?: InputMaybe; dueDate?: InputMaybe; - event?: InputMaybe; + eventId?: InputMaybe; postCompletionNotes?: InputMaybe; preCompletionNotes?: InputMaybe; }; @@ -287,14 +287,14 @@ export type Event = { actionItems?: Maybe>>; admins?: Maybe>>; allDay: Scalars['Boolean']; - attendees: Array; - attendeesCheckInStatus: Array; + attendees?: Maybe>; + attendeesCheckInStatus?: Maybe>; averageFeedbackScore?: Maybe; - creator: User; + creator?: Maybe; description: Scalars['String']; endDate: Scalars['Date']; endTime?: Maybe; - feedback: Array; + feedback?: Maybe>; isPublic: Scalars['Boolean']; isRegisterable: Scalars['Boolean']; latitude?: Maybe; @@ -1124,9 +1124,9 @@ export type Organization = { admins?: Maybe>>; apiUrl: Scalars['URL']; blockedUsers?: Maybe>>; - createdAt?: Maybe; - creator: User; - customFields: Array; + createdAt: Scalars['DateTime']; + creator?: Maybe; + customFields?: Maybe>; description: Scalars['String']; image?: Maybe; isPublic: Scalars['Boolean']; @@ -2257,14 +2257,14 @@ export type RoleDirectiveResolver = { _id?: Resolver; - assignedBy?: Resolver; - assignedTo?: Resolver; + assignedBy?: Resolver, ParentType, ContextType>; + assignedTo?: Resolver, ParentType, ContextType>; assignmentDate?: Resolver, ParentType, ContextType>; - category?: Resolver; + category?: Resolver, ParentType, ContextType>; completed?: Resolver, ParentType, ContextType>; completionDate?: Resolver, ParentType, ContextType>; createdAt?: Resolver; - createdBy?: Resolver; + createdBy?: Resolver, ParentType, ContextType>; dueDate?: Resolver, ParentType, ContextType>; event?: Resolver, ParentType, ContextType>; postCompletionNotes?: Resolver, ParentType, ContextType>; @@ -2321,9 +2321,9 @@ export type CategoryResolvers; category?: Resolver; createdAt?: Resolver; - createdBy?: Resolver; + createdBy?: Resolver, ParentType, ContextType>; disabled?: Resolver; - org?: Resolver; + org?: Resolver, ParentType, ContextType>; updatedAt?: Resolver; __isTypeOf?: IsTypeOfResolverFn; }; @@ -2430,14 +2430,14 @@ export type EventResolvers>>, ParentType, ContextType>; admins?: Resolver>>, ParentType, ContextType, Partial>; allDay?: Resolver; - attendees?: Resolver, ParentType, ContextType>; - attendeesCheckInStatus?: Resolver, ParentType, ContextType>; + attendees?: Resolver>, ParentType, ContextType>; + attendeesCheckInStatus?: Resolver>, ParentType, ContextType>; averageFeedbackScore?: Resolver, ParentType, ContextType>; - creator?: Resolver; + creator?: Resolver, ParentType, ContextType>; description?: Resolver; endDate?: Resolver; endTime?: Resolver, ParentType, ContextType>; - feedback?: Resolver, ParentType, ContextType>; + feedback?: Resolver>, ParentType, ContextType>; isPublic?: Resolver; isRegisterable?: Resolver; latitude?: Resolver, ParentType, ContextType>; @@ -2688,9 +2688,9 @@ export type OrganizationResolvers>>, ParentType, ContextType, Partial>; apiUrl?: Resolver; blockedUsers?: Resolver>>, ParentType, ContextType>; - createdAt?: Resolver, ParentType, ContextType>; - creator?: Resolver; - customFields?: Resolver, ParentType, ContextType>; + createdAt?: Resolver; + creator?: Resolver, ParentType, ContextType>; + customFields?: Resolver>, ParentType, ContextType>; description?: Resolver; image?: Resolver, ParentType, ContextType>; isPublic?: Resolver; diff --git a/tests/helpers/actionItem.ts b/tests/helpers/actionItem.ts index 9e4a4fe780e..0ba19eb7ba6 100644 --- a/tests/helpers/actionItem.ts +++ b/tests/helpers/actionItem.ts @@ -102,7 +102,7 @@ export const createTestActionItems = async (): Promise< _id: testActionItem1?._id, }, { - event: testEvent?._id, + eventId: testEvent?._id, } ); @@ -111,7 +111,7 @@ export const createTestActionItems = async (): Promise< _id: testActionItem2?._id, }, { - event: testEvent?._id, + eventId: testEvent?._id, } ); diff --git a/tests/resolvers/ActionItem/event.spec.ts b/tests/resolvers/ActionItem/event.spec.ts index c5911097adf..6e3ac56841f 100644 --- a/tests/resolvers/ActionItem/event.spec.ts +++ b/tests/resolvers/ActionItem/event.spec.ts @@ -48,7 +48,7 @@ describe("resolvers -> ActionItem -> event", () => { _id: testActionItem?._id, }, { - event: testEvent?._id, + eventId: testEvent?._id, }, { new: true, diff --git a/tests/resolvers/Event/actionItems.spec.ts b/tests/resolvers/Event/actionItems.spec.ts index 916a437fdd1..e243fcbad5f 100644 --- a/tests/resolvers/Event/actionItems.spec.ts +++ b/tests/resolvers/Event/actionItems.spec.ts @@ -30,7 +30,7 @@ describe("resolvers -> Organization -> actionItems", () => { ); const actionItems = await ActionItem.find({ - event: testEvent?._id, + eventId: testEvent?._id, }).lean(); expect(actionCategoriesPayload).toEqual(actionItems); diff --git a/tests/resolvers/Mutation/createActionItem.spec.ts b/tests/resolvers/Mutation/createActionItem.spec.ts index a407bfeb094..33035adfba2 100644 --- a/tests/resolvers/Mutation/createActionItem.spec.ts +++ b/tests/resolvers/Mutation/createActionItem.spec.ts @@ -152,7 +152,7 @@ describe("resolvers -> Mutation -> createActionItem", () => { } }); - it(`throws NotFoundError if no event exists with _id === args.data.event`, async () => { + it(`throws NotFoundError if no event exists with _id === args.data.eventId`, async () => { await User.findOneAndUpdate( { _id: randomUser?._id, @@ -166,7 +166,7 @@ describe("resolvers -> Mutation -> createActionItem", () => { const args: MutationCreateActionItemArgs = { data: { assignedTo: randomUser?._id, - event: Types.ObjectId().toString(), + eventId: Types.ObjectId().toString(), }, categoryId: testCategory?._id, }; @@ -204,7 +204,7 @@ describe("resolvers -> Mutation -> createActionItem", () => { const args: MutationCreateActionItemArgs = { data: { assignedTo: randomUser?._id, - event: testEvent?._id, + eventId: testEvent?._id, }, categoryId: testCategory?._id, }; diff --git a/tests/resolvers/Mutation/removeActionItem.spec.ts b/tests/resolvers/Mutation/removeActionItem.spec.ts index 8bd74946df8..848a1d809df 100644 --- a/tests/resolvers/Mutation/removeActionItem.spec.ts +++ b/tests/resolvers/Mutation/removeActionItem.spec.ts @@ -195,7 +195,7 @@ describe("resolvers -> Mutation -> removeActionItem", () => { _id: newTestActionItem?._id, }, { - event: Types.ObjectId().toString(), + eventId: Types.ObjectId().toString(), }, { new: true, @@ -229,7 +229,7 @@ describe("resolvers -> Mutation -> removeActionItem", () => { _id: newTestActionItem?._id, }, { - event: testEvent?._id, + eventId: testEvent?._id, }, { new: true, diff --git a/tests/resolvers/Mutation/removeEvent.spec.ts b/tests/resolvers/Mutation/removeEvent.spec.ts index d54f94801d7..65e1faa3b35 100644 --- a/tests/resolvers/Mutation/removeEvent.spec.ts +++ b/tests/resolvers/Mutation/removeEvent.spec.ts @@ -216,7 +216,7 @@ describe("resolvers -> Mutation -> removeEvent", () => { expect(removeEventPayload).toEqual(newTestEvent?.toObject()); const deletedActionItems = await ActionItem.find({ - event: newTestEvent?._id, + eventId: newTestEvent?._id, }); expect(deletedActionItems).toEqual([]); diff --git a/tests/resolvers/Mutation/updateActionItem.spec.ts b/tests/resolvers/Mutation/updateActionItem.spec.ts index cdf941580ee..9aa73dd4f8d 100644 --- a/tests/resolvers/Mutation/updateActionItem.spec.ts +++ b/tests/resolvers/Mutation/updateActionItem.spec.ts @@ -235,7 +235,7 @@ describe("resolvers -> Mutation -> updateActionItem", () => { _id: testActionItem?._id, }, { - event: Types.ObjectId().toString(), + eventId: Types.ObjectId().toString(), }, { new: true, @@ -275,7 +275,7 @@ describe("resolvers -> Mutation -> updateActionItem", () => { _id: testActionItem?._id, }, { - event: testEvent?._id, + eventId: testEvent?._id, }, { new: true, diff --git a/tests/resolvers/Query/actionItemsByEvent.spec.ts b/tests/resolvers/Query/actionItemsByEvent.spec.ts index c30dadb68a2..34f161eee76 100644 --- a/tests/resolvers/Query/actionItemsByEvent.spec.ts +++ b/tests/resolvers/Query/actionItemsByEvent.spec.ts @@ -33,7 +33,7 @@ describe("resolvers -> Query -> actionItemsByEvent", () => { ); const actionItemsByEventInfo = await ActionItem.find({ - event: testEvent?._id, + eventId: testEvent?._id, }).lean(); expect(actionItemsByEventPayload).toEqual(actionItemsByEventInfo);