@bash-app/bash-common 1.9.0 → 1.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/definitions.ts +3 -2
- package/src/extendedSchemas.ts +27 -1
- package/src/utils/ticketListUtils.ts +12 -13
package/package.json
CHANGED
package/src/definitions.ts
CHANGED
|
@@ -47,7 +47,7 @@ export const URL_PARAMS_LINKED_IN_CODE = 'code' as const;
|
|
|
47
47
|
export const URL_PARAMS_STATE = 'state' as const;
|
|
48
48
|
|
|
49
49
|
export const URL_PARAMS_TICKET_LIST_DELIM = ',' as const;
|
|
50
|
-
export const
|
|
50
|
+
export const URL_PARAMS_TICKET_TIER_ID_NUMBER_OF_TICKETS_DATE_DELIM = '__' as const
|
|
51
51
|
export const URL_PARAMS_NUMBER_OF_TICKETS_TICKETS_DATE_DELIM = '~~' as const
|
|
52
52
|
export const URL_PARAMS_TICKETS_DATE_DELIM = ';;' as const
|
|
53
53
|
|
|
@@ -142,7 +142,8 @@ export enum ApiErrorType {
|
|
|
142
142
|
StripeUserInfoIncomplete,
|
|
143
143
|
TicketsAlreadyPurchasedUsingThisCheckoutSession,
|
|
144
144
|
StripeAccountHasNotSetupTaxData,
|
|
145
|
-
StripeCheckoutSessionIncomplete
|
|
145
|
+
StripeCheckoutSessionIncomplete,
|
|
146
|
+
CouldNotSendEmail
|
|
146
147
|
}
|
|
147
148
|
|
|
148
149
|
export type ErrorDataType = Record<RecordKey, any>;
|
package/src/extendedSchemas.ts
CHANGED
|
@@ -7,7 +7,8 @@ import {
|
|
|
7
7
|
TargetAudience,
|
|
8
8
|
Ticket,
|
|
9
9
|
User,
|
|
10
|
-
TicketTier, Service, Review, Media, BashComment, Recurrence, Contact
|
|
10
|
+
TicketTier, Service, Review, Media, BashComment, Recurrence, Contact,
|
|
11
|
+
BashNotification
|
|
11
12
|
} from "@prisma/client";
|
|
12
13
|
import {RecordKey} from "./definitions";
|
|
13
14
|
|
|
@@ -27,6 +28,31 @@ export interface BashEventExt extends BashEvent {
|
|
|
27
28
|
invitations: InvitationExt[];
|
|
28
29
|
}
|
|
29
30
|
|
|
31
|
+
export interface BashNotificationsExt extends BashNotification {
|
|
32
|
+
creator?: {
|
|
33
|
+
id: string;
|
|
34
|
+
name: string;
|
|
35
|
+
image?: string;
|
|
36
|
+
};
|
|
37
|
+
bashEvent?: {
|
|
38
|
+
id: string;
|
|
39
|
+
name: string;
|
|
40
|
+
coverPhoto?: string;
|
|
41
|
+
};
|
|
42
|
+
eventTask?: {
|
|
43
|
+
id: string;
|
|
44
|
+
title: string;
|
|
45
|
+
};
|
|
46
|
+
invitation?: {
|
|
47
|
+
id: string;
|
|
48
|
+
eventName: string;
|
|
49
|
+
};
|
|
50
|
+
reminders?: Array<{
|
|
51
|
+
id: string;
|
|
52
|
+
reminderText: string;
|
|
53
|
+
}>;
|
|
54
|
+
}
|
|
55
|
+
|
|
30
56
|
export const BASH_EVENT_DATA_TO_INCLUDE = {
|
|
31
57
|
targetAudience: true,
|
|
32
58
|
amountOfGuests: true,
|
|
@@ -2,7 +2,7 @@ import dayjs from "dayjs";
|
|
|
2
2
|
import {
|
|
3
3
|
NumberOfTicketsForDate,
|
|
4
4
|
URL_PARAMS_NUMBER_OF_TICKETS_TICKETS_DATE_DELIM,
|
|
5
|
-
|
|
5
|
+
URL_PARAMS_TICKET_TIER_ID_NUMBER_OF_TICKETS_DATE_DELIM,
|
|
6
6
|
URL_PARAMS_TICKET_LIST_DELIM,
|
|
7
7
|
URL_PARAMS_TICKETS_DATE_DELIM
|
|
8
8
|
} from "../definitions";
|
|
@@ -17,7 +17,7 @@ export function ticketListToString(ticketList: Map<string, NumberOfTicketsForDat
|
|
|
17
17
|
const ticketListArr: string[] = [];
|
|
18
18
|
|
|
19
19
|
for (const [ticketTierId, ticketListArgs] of ticketList.entries()) {
|
|
20
|
-
const ticketArgs: string[] = [`${ticketTierId}${
|
|
20
|
+
const ticketArgs: string[] = [`${ticketTierId}${URL_PARAMS_TICKET_TIER_ID_NUMBER_OF_TICKETS_DATE_DELIM}`];
|
|
21
21
|
for (const ticketNumAndDates of ticketListArgs) {
|
|
22
22
|
if (ticketNumAndDates.numberOfTickets > 0) {
|
|
23
23
|
ticketArgs.push(
|
|
@@ -36,34 +36,33 @@ export function ticketListToString(ticketList: Map<string, NumberOfTicketsForDat
|
|
|
36
36
|
export function ticketListStrToTicketList(ticketListStr: string): Map<string, NumberOfTicketsForDate[]> {
|
|
37
37
|
const ticketList: Map<string, NumberOfTicketsForDate[]> = new Map();
|
|
38
38
|
|
|
39
|
-
// [ticketTierId]__[numberOfTickets];;[date]~~[numberOfTickets];;[date]~~...,...
|
|
39
|
+
// [ticketTierId]__~~[numberOfTickets];;[date]~~[numberOfTickets];;[date]~~...,...
|
|
40
40
|
const ticketListArgs = ticketListStr.split(URL_PARAMS_TICKET_LIST_DELIM);
|
|
41
41
|
|
|
42
42
|
ticketListArgs.forEach((tierIdAndTicketNumbersAndDates: string): void => {
|
|
43
43
|
const ticketNumAndDatesArr: NumberOfTicketsForDate[] = [];
|
|
44
|
-
// [ticketTierId]__[numberOfTickets];;[date]~~[numberOfTickets];;[date]~~...
|
|
45
|
-
const [ticketTierId, ticketNumAndDatesStr] = tierIdAndTicketNumbersAndDates.split(
|
|
44
|
+
// [ticketTierId]__~~[numberOfTickets];;[date]~~[numberOfTickets];;[date]~~...
|
|
45
|
+
const [ticketTierId, ticketNumAndDatesStr] = tierIdAndTicketNumbersAndDates.split(URL_PARAMS_TICKET_TIER_ID_NUMBER_OF_TICKETS_DATE_DELIM);
|
|
46
46
|
if (!ticketNumAndDatesArr) {
|
|
47
47
|
throw new Error(`Could not parse ticketListStr. Maybe it is just an amount?`);
|
|
48
48
|
}
|
|
49
|
-
// [numberOfTickets];;[date]~~[numberOfTickets];;[date]~~...
|
|
49
|
+
// ~~[numberOfTickets];;[date]~~[numberOfTickets];;[date]~~...
|
|
50
50
|
const ticketNumAndDates = ticketNumAndDatesStr.split(URL_PARAMS_NUMBER_OF_TICKETS_TICKETS_DATE_DELIM)
|
|
51
51
|
.filter((ticketNumAndDateStr): boolean => !!ticketNumAndDateStr);
|
|
52
52
|
|
|
53
53
|
for (const ticketNumAndDateStr of ticketNumAndDates) {
|
|
54
54
|
// [numberOfTickets];;[date]
|
|
55
55
|
const [numberOfTickets, ticketDateTimeStr] = ticketNumAndDateStr.split(URL_PARAMS_TICKETS_DATE_DELIM);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
ticketDateTime = dayjs(ticketDateTimeStr).format(DATETIME_FORMAT_ISO_LIKE);
|
|
56
|
+
const ticketDateTime = dayjs(ticketDateTimeStr);
|
|
57
|
+
let ticketDateTimeFormattedStr: string | undefined = undefined;
|
|
58
|
+
|
|
59
|
+
if (ticketDateTime.isValid()) {
|
|
60
|
+
ticketDateTimeFormattedStr = ticketDateTime.format(DATETIME_FORMAT_ISO_LIKE);
|
|
62
61
|
}
|
|
63
62
|
|
|
64
63
|
ticketNumAndDatesArr.push({
|
|
65
64
|
numberOfTickets: parseInt(numberOfTickets),
|
|
66
|
-
ticketDateTime:
|
|
65
|
+
ticketDateTime: ticketDateTimeFormattedStr,
|
|
67
66
|
});
|
|
68
67
|
}
|
|
69
68
|
ticketList.set(ticketTierId, ticketNumAndDatesArr);
|