@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bash-app/bash-common",
3
- "version": "1.9.0",
3
+ "version": "1.9.2",
4
4
  "description": "Common data and scripts to use on the frontend and backend",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -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 URL_PARAMS_TICKET_ID_NUMBER_OF_TICKETS_DATE_DELIM = '__' as 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>;
@@ -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
- URL_PARAMS_TICKET_ID_NUMBER_OF_TICKETS_DATE_DELIM,
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}${URL_PARAMS_TICKET_ID_NUMBER_OF_TICKETS_DATE_DELIM}`];
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(URL_PARAMS_TICKET_ID_NUMBER_OF_TICKETS_DATE_DELIM);
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
- let ticketDateTime: string | undefined;
57
- if (!ticketDateTimeStr) {
58
- ticketDateTime = undefined;
59
- }
60
- else {
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: ticketDateTime,
65
+ ticketDateTime: ticketDateTimeFormattedStr,
67
66
  });
68
67
  }
69
68
  ticketList.set(ticketTierId, ticketNumAndDatesArr);