Skip to content

Commit 29467a1

Browse files
Merge branch 'main' into fix/help-link-self-hosted
2 parents 67f63c4 + dc3df12 commit 29467a1

File tree

97 files changed

+1346
-5688
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+1346
-5688
lines changed

.env.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,8 @@ STRIPE_TEAM_PRODUCT_ID=
214214
# It is a price ID in the product with id STRIPE_ORG_PRODUCT_ID
215215
STRIPE_ORG_MONTHLY_PRICE_ID=
216216
STRIPE_ORG_PRODUCT_ID=
217+
# Used to pass trial days for orgs during the Stripe checkout session
218+
STRIPE_ORG_TRIAL_DAYS=
217219

218220
STRIPE_WEBHOOK_SECRET=
219221
STRIPE_WEBHOOK_SECRET_APPS=

.yarn/versions/60ad8d80.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
undecided:
2+
- calcom-monorepo

PR_TODO.md

Lines changed: 0 additions & 15 deletions
This file was deleted.

apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/booking-fields.e2e-spec.ts

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,7 @@ import { randomString } from "test/utils/randomString";
2020
import { withApiAuth } from "test/utils/withApiAuth";
2121

2222
import { CAL_API_VERSION_HEADER, SUCCESS_STATUS, VERSION_2024_08_13 } from "@calcom/platform-constants";
23-
import {
24-
CreateBookingInput_2024_08_13,
25-
GetBookingOutput_2024_08_13,
26-
GetSeatedBookingOutput_2024_08_13,
27-
} from "@calcom/platform-types";
23+
import { CreateBookingInput_2024_08_13, GetBookingOutput_2024_08_13, GetSeatedBookingOutput_2024_08_13 } from "@calcom/platform-types";
2824
import { BookingOutput_2024_08_13 } from "@calcom/platform-types";
2925
import type { Booking, PlatformOAuthClient, Team, User, EventType } from "@calcom/prisma/client";
3026

@@ -854,7 +850,7 @@ describe("Bookings Endpoints 2024-08-13", () => {
854850

855851
describe("Booking Field Type Validation", () => {
856852
const basePayload = {
857-
start: "2025-06-19T11:00:00.000Z",
853+
start: new Date(Date.UTC(2030, 5, 19, 11, 0, 0)).toISOString(),
858854
attendee: {
859855
name: "Charlie TypeTest",
860856
@@ -1162,6 +1158,31 @@ describe("Bookings Endpoints 2024-08-13", () => {
11621158
`One or more invalid options for booking field '${fieldName}'. Allowed options are: blue, red.`
11631159
);
11641160
});
1161+
1162+
it("should transform null values to empty strings in bookingFieldsResponses", async () => {
1163+
const payload = {
1164+
...basePayload,
1165+
eventTypeId: eventTypeWithBookingFields.id,
1166+
bookingFieldsResponses: {
1167+
"favorite-movie": "The Matrix",
1168+
rescheduleReason: null,
1169+
notes: null,
1170+
},
1171+
};
1172+
const response = await request(app.getHttpServer())
1173+
.post(`/v2/bookings`)
1174+
.send(payload)
1175+
.set(CAL_API_VERSION_HEADER, VERSION_2024_08_13);
1176+
expect(response.status).toBe(201);
1177+
expect(response.body.status).toEqual(SUCCESS_STATUS);
1178+
1179+
if (responseDataIsBooking(response.body.data)) {
1180+
const data: BookingOutput_2024_08_13 = response.body.data;
1181+
expect(data.bookingFieldsResponses.notes).toBe("");
1182+
expect(data.bookingFieldsResponses.rescheduleReason).toBe("");
1183+
expect(data.bookingFieldsResponses["favorite-movie"]).toBe("The Matrix");
1184+
}
1185+
});
11651186
});
11661187

11671188
afterAll(async () => {
@@ -1176,4 +1197,4 @@ describe("Bookings Endpoints 2024-08-13", () => {
11761197
function responseDataIsBooking(data: any): data is BookingOutput_2024_08_13 {
11771198
return !Array.isArray(data) && typeof data === "object" && data && "id" in data;
11781199
}
1179-
});
1200+
});

apps/api/v2/src/lib/modules/available-slots.module.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import { PrismaTeamRepository } from "@/lib/repositories/prisma-team.repository"
1010
import { PrismaUserRepository } from "@/lib/repositories/prisma-user.repository";
1111
import { AvailableSlotsService } from "@/lib/services/available-slots.service";
1212
import { BusyTimesService } from "@/lib/services/busy-times.service";
13-
import { CacheService } from "@/lib/services/cache.service";
1413
import { CheckBookingLimitsService } from "@/lib/services/check-booking-limits.service";
1514
import { FilterHostsService } from "@/lib/services/filter-hosts.service";
1615
import { NoSlotsNotificationService } from "@/lib/services/no-slots-notification.service";
@@ -35,7 +34,6 @@ import { Module } from "@nestjs/common";
3534
PrismaFeaturesRepository,
3635
PrismaMembershipRepository,
3736
CheckBookingLimitsService,
38-
CacheService,
3937
AvailableSlotsService,
4038
UserAvailabilityService,
4139
BusyTimesService,

apps/api/v2/src/lib/modules/regular-booking.module.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { PrismaFeaturesRepository } from "@/lib/repositories/prisma-features.rep
44
import { PrismaHostRepository } from "@/lib/repositories/prisma-host.repository";
55
import { PrismaOOORepository } from "@/lib/repositories/prisma-ooo.repository";
66
import { PrismaUserRepository } from "@/lib/repositories/prisma-user.repository";
7-
import { CacheService } from "@/lib/services/cache.service";
87
import { CheckBookingAndDurationLimitsService } from "@/lib/services/check-booking-and-duration-limits.service";
98
import { CheckBookingLimitsService } from "@/lib/services/check-booking-limits.service";
109
import { HashedLinkService } from "@/lib/services/hashed-link.service";
@@ -22,7 +21,6 @@ import { Module } from "@nestjs/common";
2221
PrismaHostRepository,
2322
PrismaOOORepository,
2423
PrismaUserRepository,
25-
CacheService,
2624
CheckBookingAndDurationLimitsService,
2725
CheckBookingLimitsService,
2826
HashedLinkService,

apps/api/v2/src/lib/services/available-slots.service.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import { PrismaSelectedSlotRepository } from "@/lib/repositories/prisma-selected
88
import { PrismaTeamRepository } from "@/lib/repositories/prisma-team.repository";
99
import { PrismaUserRepository } from "@/lib/repositories/prisma-user.repository";
1010
import { BusyTimesService } from "@/lib/services/busy-times.service";
11-
import { CacheService } from "@/lib/services/cache.service";
1211
import { CheckBookingLimitsService } from "@/lib/services/check-booking-limits.service";
1312
import { NoSlotsNotificationService } from "@/lib/services/no-slots-notification.service";
1413
import { QualifiedHostsService } from "@/lib/services/qualified-hosts.service";
@@ -34,7 +33,6 @@ export class AvailableSlotsService extends BaseAvailableSlotsService {
3433
featuresRepository: PrismaFeaturesRepository,
3534
qualifiedHostsService: QualifiedHostsService,
3635
checkBookingLimitsService: CheckBookingLimitsService,
37-
cacheService: CacheService,
3836
userAvailabilityService: UserAvailabilityService,
3937
busyTimesService: BusyTimesService,
4038
noSlotsNotificationService: NoSlotsNotificationService
@@ -50,7 +48,6 @@ export class AvailableSlotsService extends BaseAvailableSlotsService {
5048
userRepo: userRepository,
5149
redisClient: redisService,
5250
checkBookingLimitsService,
53-
cacheService,
5451
userAvailabilityService,
5552
busyTimesService,
5653
qualifiedHostsService,

apps/api/v2/src/lib/services/cache.service.ts

Lines changed: 0 additions & 11 deletions
This file was deleted.

apps/api/v2/src/lib/services/regular-booking.service.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { PrismaBookingRepository } from "@/lib/repositories/prisma-booking.repository";
22
import { PrismaUserRepository } from "@/lib/repositories/prisma-user.repository";
3-
import { CacheService } from "@/lib/services/cache.service";
43
import { CheckBookingAndDurationLimitsService } from "@/lib/services/check-booking-and-duration-limits.service";
54
import { HashedLinkService } from "@/lib/services/hashed-link.service";
65
import { LuckyUserService } from "@/lib/services/lucky-user.service";
@@ -13,7 +12,6 @@ import type { PrismaClient } from "@calcom/prisma";
1312
@Injectable()
1413
export class RegularBookingService extends BaseRegularBookingService {
1514
constructor(
16-
cacheService: CacheService,
1715
checkBookingAndDurationLimitsService: CheckBookingAndDurationLimitsService,
1816
prismaWriteService: PrismaWriteService,
1917
bookingRepository: PrismaBookingRepository,
@@ -22,7 +20,6 @@ export class RegularBookingService extends BaseRegularBookingService {
2220
userRepository: PrismaUserRepository
2321
) {
2422
super({
25-
cacheService,
2623
checkBookingAndDurationLimitsService,
2724
prismaClient: prismaWriteService.prisma as unknown as PrismaClient,
2825
bookingRepository,

apps/web/app/(use-page-wrapper)/onboarding/teams/invite/page.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ const ServerPage = async () => {
2626
return redirect("/auth/login");
2727
}
2828

29+
if (session.user.role !== "ADMIN") {
30+
return redirect("/onboarding/teams/invite/email");
31+
}
32+
2933
const userEmail = session.user.email || "";
3034

3135
return <TeamInviteView userEmail={userEmail} />;

0 commit comments

Comments
 (0)