From 860dcbd14e8507d53a134ea9277f89dee6b7a1ab Mon Sep 17 00:00:00 2001 From: Jose Lezama Date: Thu, 26 Sep 2024 22:36:39 -0300 Subject: [PATCH] Fix/public ids (#53) # Summary - Use the public ID for purchaseOrder instead of the private ID - Use the public ID for ticket instead of the private ID --- app/api/gql/gql.ts | 12 ++++++------ app/api/gql/graphql.ts | 13 +++++++++++++ app/api/gql/schema.gql | 1 + app/components/MyEvent/MyEvent.tsx | 2 +- .../MyEvent/graphql/myEvent.generated.tsx | 2 ++ app/components/MyEvent/graphql/myEvent.gql | 1 + app/components/PurchaseOrder/Callback.tsx | 7 +++++-- .../graphql/checkPurchaseOrderStatus.generated.tsx | 4 ++++ .../graphql/checkPurchaseOrderStatus.gql | 2 ++ 9 files changed, 35 insertions(+), 9 deletions(-) diff --git a/app/api/gql/gql.ts b/app/api/gql/gql.ts index a683e72..5601587 100644 --- a/app/api/gql/gql.ts +++ b/app/api/gql/gql.ts @@ -15,7 +15,7 @@ import type { TypedDocumentNode as DocumentNode } from "@graphql-typed-document- const documents = { "query FetchExampleEvents($input: PaginatedInputEventsSearchInput!) {\n searchEvents(input: $input) {\n data {\n id\n description\n community {\n id\n name\n }\n tags {\n id\n name\n description\n }\n }\n }\n}": types.FetchExampleEventsDocument, - "query myEvent($input: PaginatedInputEventsSearchInput!, $userTicketSearchInput: EventsTicketsSearchInput) {\n searchEvents(input: $input) {\n data {\n id\n name\n description\n startDateTime\n endDateTime\n address\n publicShareURL\n previewImage {\n url\n }\n bannerImage {\n url\n }\n mobileBannerImage {\n url\n }\n community {\n id\n name\n }\n status\n usersTickets(input: $userTicketSearchInput) {\n id\n approvalStatus\n paymentStatus\n redemptionStatus\n createdAt\n ticketTemplate {\n id\n name\n description\n }\n }\n }\n pagination {\n currentPage\n pageSize\n totalPages\n totalRecords\n }\n }\n}": + "query myEvent($input: PaginatedInputEventsSearchInput!, $userTicketSearchInput: EventsTicketsSearchInput) {\n searchEvents(input: $input) {\n data {\n id\n name\n description\n startDateTime\n endDateTime\n address\n publicShareURL\n previewImage {\n url\n }\n bannerImage {\n url\n }\n mobileBannerImage {\n url\n }\n community {\n id\n name\n }\n status\n usersTickets(input: $userTicketSearchInput) {\n id\n approvalStatus\n paymentStatus\n redemptionStatus\n createdAt\n publicId\n ticketTemplate {\n id\n name\n description\n }\n }\n }\n pagination {\n currentPage\n pageSize\n totalPages\n totalRecords\n }\n }\n}": types.MyEventDocument, "query myEvents($input: PaginatedInputEventsSearchInput!, $userTicketSearchInput: EventsTicketsSearchInput) {\n searchEvents(input: $input) {\n data {\n id\n name\n description\n startDateTime\n address\n previewImage {\n url\n }\n community {\n id\n name\n }\n status\n usersTickets(input: $userTicketSearchInput) {\n id\n approvalStatus\n paymentStatus\n redemptionStatus\n ticketTemplate {\n description\n id\n }\n }\n }\n pagination {\n currentPage\n pageSize\n totalPages\n totalRecords\n }\n }\n}": types.MyEventsDocument, @@ -25,7 +25,7 @@ const documents = { types.SearchUsersDocument, "query myProfile {\n me {\n id\n bio\n lastName\n username\n imageUrl\n isSuperAdmin\n email\n name\n impersonatedUser {\n id\n name\n }\n communities {\n id\n name\n }\n }\n}": types.MyProfileDocument, - "mutation CheckPurchaseOrderStatus($input: CheckForPurchaseOrderInput!) {\n checkPurchaseOrderStatus(input: $input) {\n id\n paymentLink\n status\n finalPrice\n paymentPlatform\n createdAt\n currency {\n id\n currency\n }\n tickets {\n id\n approvalStatus\n paymentStatus\n redemptionStatus\n ticketTemplate {\n id\n name\n description\n event {\n id\n name\n address\n description\n startDateTime\n endDateTime\n status\n publicShareURL\n logoImage {\n url\n }\n community {\n name\n }\n }\n prices {\n id\n amount\n currency {\n currency\n id\n }\n }\n }\n }\n }\n}": + "mutation CheckPurchaseOrderStatus($input: CheckForPurchaseOrderInput!) {\n checkPurchaseOrderStatus(input: $input) {\n id\n paymentLink\n status\n finalPrice\n paymentPlatform\n createdAt\n publicId\n currency {\n id\n currency\n }\n tickets {\n id\n approvalStatus\n paymentStatus\n redemptionStatus\n publicId\n ticketTemplate {\n id\n name\n description\n event {\n id\n name\n address\n description\n startDateTime\n endDateTime\n status\n publicShareURL\n logoImage {\n url\n }\n community {\n name\n }\n }\n prices {\n id\n amount\n currency {\n currency\n id\n }\n }\n }\n }\n }\n}": types.CheckPurchaseOrderStatusDocument, "fragment EventTicketFragment on Ticket {\n id\n name\n description\n quantity\n isFree\n startDateTime\n status\n isUnlimited\n prices {\n id\n amount\n currency {\n currency\n id\n }\n }\n}": types.EventTicketFragmentFragmentDoc, @@ -59,8 +59,8 @@ export function graphql( * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ export function graphql( - source: "query myEvent($input: PaginatedInputEventsSearchInput!, $userTicketSearchInput: EventsTicketsSearchInput) {\n searchEvents(input: $input) {\n data {\n id\n name\n description\n startDateTime\n endDateTime\n address\n publicShareURL\n previewImage {\n url\n }\n bannerImage {\n url\n }\n mobileBannerImage {\n url\n }\n community {\n id\n name\n }\n status\n usersTickets(input: $userTicketSearchInput) {\n id\n approvalStatus\n paymentStatus\n redemptionStatus\n createdAt\n ticketTemplate {\n id\n name\n description\n }\n }\n }\n pagination {\n currentPage\n pageSize\n totalPages\n totalRecords\n }\n }\n}", -): (typeof documents)["query myEvent($input: PaginatedInputEventsSearchInput!, $userTicketSearchInput: EventsTicketsSearchInput) {\n searchEvents(input: $input) {\n data {\n id\n name\n description\n startDateTime\n endDateTime\n address\n publicShareURL\n previewImage {\n url\n }\n bannerImage {\n url\n }\n mobileBannerImage {\n url\n }\n community {\n id\n name\n }\n status\n usersTickets(input: $userTicketSearchInput) {\n id\n approvalStatus\n paymentStatus\n redemptionStatus\n createdAt\n ticketTemplate {\n id\n name\n description\n }\n }\n }\n pagination {\n currentPage\n pageSize\n totalPages\n totalRecords\n }\n }\n}"]; + source: "query myEvent($input: PaginatedInputEventsSearchInput!, $userTicketSearchInput: EventsTicketsSearchInput) {\n searchEvents(input: $input) {\n data {\n id\n name\n description\n startDateTime\n endDateTime\n address\n publicShareURL\n previewImage {\n url\n }\n bannerImage {\n url\n }\n mobileBannerImage {\n url\n }\n community {\n id\n name\n }\n status\n usersTickets(input: $userTicketSearchInput) {\n id\n approvalStatus\n paymentStatus\n redemptionStatus\n createdAt\n publicId\n ticketTemplate {\n id\n name\n description\n }\n }\n }\n pagination {\n currentPage\n pageSize\n totalPages\n totalRecords\n }\n }\n}", +): (typeof documents)["query myEvent($input: PaginatedInputEventsSearchInput!, $userTicketSearchInput: EventsTicketsSearchInput) {\n searchEvents(input: $input) {\n data {\n id\n name\n description\n startDateTime\n endDateTime\n address\n publicShareURL\n previewImage {\n url\n }\n bannerImage {\n url\n }\n mobileBannerImage {\n url\n }\n community {\n id\n name\n }\n status\n usersTickets(input: $userTicketSearchInput) {\n id\n approvalStatus\n paymentStatus\n redemptionStatus\n createdAt\n publicId\n ticketTemplate {\n id\n name\n description\n }\n }\n }\n pagination {\n currentPage\n pageSize\n totalPages\n totalRecords\n }\n }\n}"]; /** * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ @@ -89,8 +89,8 @@ export function graphql( * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ export function graphql( - source: "mutation CheckPurchaseOrderStatus($input: CheckForPurchaseOrderInput!) {\n checkPurchaseOrderStatus(input: $input) {\n id\n paymentLink\n status\n finalPrice\n paymentPlatform\n createdAt\n currency {\n id\n currency\n }\n tickets {\n id\n approvalStatus\n paymentStatus\n redemptionStatus\n ticketTemplate {\n id\n name\n description\n event {\n id\n name\n address\n description\n startDateTime\n endDateTime\n status\n publicShareURL\n logoImage {\n url\n }\n community {\n name\n }\n }\n prices {\n id\n amount\n currency {\n currency\n id\n }\n }\n }\n }\n }\n}", -): (typeof documents)["mutation CheckPurchaseOrderStatus($input: CheckForPurchaseOrderInput!) {\n checkPurchaseOrderStatus(input: $input) {\n id\n paymentLink\n status\n finalPrice\n paymentPlatform\n createdAt\n currency {\n id\n currency\n }\n tickets {\n id\n approvalStatus\n paymentStatus\n redemptionStatus\n ticketTemplate {\n id\n name\n description\n event {\n id\n name\n address\n description\n startDateTime\n endDateTime\n status\n publicShareURL\n logoImage {\n url\n }\n community {\n name\n }\n }\n prices {\n id\n amount\n currency {\n currency\n id\n }\n }\n }\n }\n }\n}"]; + source: "mutation CheckPurchaseOrderStatus($input: CheckForPurchaseOrderInput!) {\n checkPurchaseOrderStatus(input: $input) {\n id\n paymentLink\n status\n finalPrice\n paymentPlatform\n createdAt\n publicId\n currency {\n id\n currency\n }\n tickets {\n id\n approvalStatus\n paymentStatus\n redemptionStatus\n publicId\n ticketTemplate {\n id\n name\n description\n event {\n id\n name\n address\n description\n startDateTime\n endDateTime\n status\n publicShareURL\n logoImage {\n url\n }\n community {\n name\n }\n }\n prices {\n id\n amount\n currency {\n currency\n id\n }\n }\n }\n }\n }\n}", +): (typeof documents)["mutation CheckPurchaseOrderStatus($input: CheckForPurchaseOrderInput!) {\n checkPurchaseOrderStatus(input: $input) {\n id\n paymentLink\n status\n finalPrice\n paymentPlatform\n createdAt\n publicId\n currency {\n id\n currency\n }\n tickets {\n id\n approvalStatus\n paymentStatus\n redemptionStatus\n publicId\n ticketTemplate {\n id\n name\n description\n event {\n id\n name\n address\n description\n startDateTime\n endDateTime\n status\n publicShareURL\n logoImage {\n url\n }\n community {\n name\n }\n }\n prices {\n id\n amount\n currency {\n currency\n id\n }\n }\n }\n }\n }\n}"]; /** * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ diff --git a/app/api/gql/graphql.ts b/app/api/gql/graphql.ts index 3eb3cb0..f9bf2b8 100644 --- a/app/api/gql/graphql.ts +++ b/app/api/gql/graphql.ts @@ -690,6 +690,7 @@ export type PurchaseOrder = { id: Scalars["ID"]["output"]; paymentLink?: Maybe; paymentPlatform?: Maybe; + publicId?: Maybe; purchasePaymentStatus?: Maybe; status?: Maybe; tickets: Array; @@ -1376,6 +1377,7 @@ export type MyEventQuery = { paymentStatus?: PurchaseOrderPaymentStatusEnum | null; redemptionStatus: TicketRedemptionStatus; createdAt: string; + publicId: string; ticketTemplate: { id: string; name: string; @@ -1501,12 +1503,14 @@ export type CheckPurchaseOrderStatusMutation = { finalPrice?: number | null; paymentPlatform?: string | null; createdAt?: string | null; + publicId?: string | null; currency?: { id: string; currency: string } | null; tickets: Array<{ id: string; approvalStatus: TicketApprovalStatus; paymentStatus?: PurchaseOrderPaymentStatusEnum | null; redemptionStatus: TicketRedemptionStatus; + publicId: string; ticketTemplate: { id: string; name: string; @@ -1938,6 +1942,10 @@ export const MyEventDocument = { kind: "Field", name: { kind: "Name", value: "createdAt" }, }, + { + kind: "Field", + name: { kind: "Name", value: "publicId" }, + }, { kind: "Field", name: { kind: "Name", value: "ticketTemplate" }, @@ -2551,6 +2559,7 @@ export const CheckPurchaseOrderStatusDocument = { name: { kind: "Name", value: "paymentPlatform" }, }, { kind: "Field", name: { kind: "Name", value: "createdAt" } }, + { kind: "Field", name: { kind: "Name", value: "publicId" } }, { kind: "Field", name: { kind: "Name", value: "currency" }, @@ -2584,6 +2593,10 @@ export const CheckPurchaseOrderStatusDocument = { kind: "Field", name: { kind: "Name", value: "redemptionStatus" }, }, + { + kind: "Field", + name: { kind: "Name", value: "publicId" }, + }, { kind: "Field", name: { kind: "Name", value: "ticketTemplate" }, diff --git a/app/api/gql/schema.gql b/app/api/gql/schema.gql index 09fb845..8274f6e 100644 --- a/app/api/gql/schema.gql +++ b/app/api/gql/schema.gql @@ -670,6 +670,7 @@ type PurchaseOrder { id: ID! paymentLink: String paymentPlatform: String + publicId: String purchasePaymentStatus: PurchaseOrderPaymentStatusEnum status: PurchaseOrderStatusEnum tickets: [UserTicket!]! diff --git a/app/components/MyEvent/MyEvent.tsx b/app/components/MyEvent/MyEvent.tsx index 7366b40..cb2dd24 100644 --- a/app/components/MyEvent/MyEvent.tsx +++ b/app/components/MyEvent/MyEvent.tsx @@ -41,7 +41,7 @@ const Ticket = ({ }) => { const [showQR, setShowQR] = useState(false); const publicUrl = event?.publicShareURL - ? urls.public.ticket(ticket.id, event.publicShareURL) + ? urls.public.ticket(ticket.publicId, event.publicShareURL) : undefined; return ( diff --git a/app/components/MyEvent/graphql/myEvent.generated.tsx b/app/components/MyEvent/graphql/myEvent.generated.tsx index 2ad46ed..0d9ee4b 100644 --- a/app/components/MyEvent/graphql/myEvent.generated.tsx +++ b/app/components/MyEvent/graphql/myEvent.generated.tsx @@ -42,6 +42,7 @@ export type MyEventQuery = { paymentStatus?: Types.PurchaseOrderPaymentStatusEnum | null; redemptionStatus: Types.TicketRedemptionStatus; createdAt: any; + publicId: string; ticketTemplate: { __typename?: "Ticket"; id: string; @@ -94,6 +95,7 @@ export const MyEventDocument = gql` paymentStatus redemptionStatus createdAt + publicId ticketTemplate { id name diff --git a/app/components/MyEvent/graphql/myEvent.gql b/app/components/MyEvent/graphql/myEvent.gql index 574abe4..5445dfe 100644 --- a/app/components/MyEvent/graphql/myEvent.gql +++ b/app/components/MyEvent/graphql/myEvent.gql @@ -31,6 +31,7 @@ query myEvent( paymentStatus redemptionStatus createdAt + publicId ticketTemplate { id name diff --git a/app/components/PurchaseOrder/Callback.tsx b/app/components/PurchaseOrder/Callback.tsx index 0c57902..9399b01 100644 --- a/app/components/PurchaseOrder/Callback.tsx +++ b/app/components/PurchaseOrder/Callback.tsx @@ -158,8 +158,11 @@ export const PurchaseCallback = ({ event?.publicShareURL && purchaseOrder.status === PurchaseOrderStatusEnum.Complete ? purchaseOrder.tickets.length > 1 - ? urls.public.po(purchaseOrderId, event.publicShareURL) - : urls.public.ticket(tickets[0].ticket.id, event.publicShareURL) + ? urls.public.po(purchaseOrder.publicId as string, event.publicShareURL) + : urls.public.ticket( + purchaseOrder.tickets[0].publicId, + event.publicShareURL, + ) : null; const purchaseOrderStatuses = [ PurchaseOrderStatusEnum.Open, diff --git a/app/components/PurchaseOrder/graphql/checkPurchaseOrderStatus.generated.tsx b/app/components/PurchaseOrder/graphql/checkPurchaseOrderStatus.generated.tsx index 3de1718..f090661 100644 --- a/app/components/PurchaseOrder/graphql/checkPurchaseOrderStatus.generated.tsx +++ b/app/components/PurchaseOrder/graphql/checkPurchaseOrderStatus.generated.tsx @@ -22,6 +22,7 @@ export type CheckPurchaseOrderStatusMutation = { finalPrice?: number | null; paymentPlatform?: string | null; createdAt?: any | null; + publicId?: string | null; currency?: { __typename?: "AllowedCurrency"; id: string; @@ -33,6 +34,7 @@ export type CheckPurchaseOrderStatusMutation = { approvalStatus: Types.TicketApprovalStatus; paymentStatus?: Types.PurchaseOrderPaymentStatusEnum | null; redemptionStatus: Types.TicketRedemptionStatus; + publicId: string; ticketTemplate: { __typename?: "Ticket"; id: string; @@ -75,6 +77,7 @@ export const CheckPurchaseOrderStatusDocument = gql` finalPrice paymentPlatform createdAt + publicId currency { id currency @@ -84,6 +87,7 @@ export const CheckPurchaseOrderStatusDocument = gql` approvalStatus paymentStatus redemptionStatus + publicId ticketTemplate { id name diff --git a/app/components/PurchaseOrder/graphql/checkPurchaseOrderStatus.gql b/app/components/PurchaseOrder/graphql/checkPurchaseOrderStatus.gql index 0cc016f..1b6daa8 100644 --- a/app/components/PurchaseOrder/graphql/checkPurchaseOrderStatus.gql +++ b/app/components/PurchaseOrder/graphql/checkPurchaseOrderStatus.gql @@ -6,6 +6,7 @@ mutation CheckPurchaseOrderStatus($input: CheckForPurchaseOrderInput!) { finalPrice paymentPlatform createdAt + publicId currency { id currency @@ -15,6 +16,7 @@ mutation CheckPurchaseOrderStatus($input: CheckForPurchaseOrderInput!) { approvalStatus paymentStatus redemptionStatus + publicId ticketTemplate { id name