cal.pub0.org/packages/trpc/server/routers/viewer/availability/schedule/update.handler.ts

133 lines
3.5 KiB
TypeScript
Raw Normal View History

import { getAvailabilityFromSchedule } from "@calcom/lib/availability";
feat: editmode availbility slider (#11197) * Add loading data and banner * [WIP] hasEditPerms middleware * fix: type error in booker (#11011) * New Crowdin translations by Github Action * refactor: removed redundant test (#10785) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Shivam Kalra <shivamkalra98@gmail.com> * feat: 2fa backup codes (#10600) Co-authored-by: Peer Richelsen <peeroke@gmail.com> * Delete add-PRs-to-project-reviewing-PRs.yml (#11008) Co-authored-by: alannnc <alannnc@gmail.com> * New Crowdin translations by Github Action * fix: multiple duration when booking (#11032) * fix: other reported issues (#11015) * fix: weird margin top in avatar * fix: pending users are shown on booking page * fix: avatar and naming issues * fix: toast alignment and removing unneeded titles * missing changes from toast improvements * feat: empty state for teams without event types * Removing console.log * feat: cal ai (#10992) Co-authored-by: nicktrn <55853254+nicktrn@users.noreply.github.com> Co-authored-by: tedspare <ted.spare@gmail.com> Co-authored-by: Alex van Andel <me@alexvanandel.com> * New Crowdin translations by Github Action * fix: meeting ended trigger for webhooks and zapier sometimes not working (#10946) Co-authored-by: mohammed gehad <mohammed.gehad.1998@gmail.com> Co-authored-by: Monto <138862352+monto7926@users.noreply.github.com> Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> * feat: team admin: see connected apps of team members (#11036) * added feature:team admin can see connected apps of members * fixed the type error * Update packages/lib/server/queries/teams/index.ts * Minor fixes --------- Co-authored-by: alannnc <alannnc@gmail.com> * fix: lower case slugs in teams (#11026) * fix: lower case slugs in teams Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: use slugify Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> --------- Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * refactor: improvements on german translation (#10898) * fix: fix-tablet-menu-not-centered-sidebar (#11020) Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> * chore: add Popover in storybook (#11021) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: Set mobile availability (#11027) * chore: add ColorPicker in storybook (CALCOM-10760) (#10866) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * feat: adds next cold start profiler (#11014) * Handle disabling of ORGANIZATIONS_ENABLED flag (#11041) * New Crowdin translations by Github Action * styles:dark mode color fix (#11004) * chore: sheet darkmode and improve responsive (#11047) * fix: handle collective multiple host on destinationCalendar (#10967) * fix: include app data and credentials from DB (#11048) * include app data and credentials from DB * Improve performance * fix: Error when running storybook (#11037) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> * fix: broken company profile link on team booking page (#10978) * chore: add ErrorBoundary in storybook (CALCOM-10760) (#10872) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * feat: sorting for workflow and routing forms (#10780) Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Co-authored-by: Peer Richelsen <peeroke@gmail.com> * resolve zod versions across child packages (#11052) * fix: List storybook file is empty (fix-list) (#10965) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * fix: admin org list without members (#11051) Co-authored-by: Peer Richelsen <peeroke@gmail.com> * chore: add ToggleGroup in storybook (#10802) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com> * fix: add metadata to stripe payment intent (#11053) * fix: Logo storybook file with invalid icons (fix-logo) (#11018) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * fix: Add controls for Select Field storybook file (#10936) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * fix: Fix tooltip control on ButtonPlayground storybook file (fix-ButtonTooltip) (#10937) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * fix: email embed – remove collapsible and permanently show times (#10996) Co-authored-by: Hariom Balhara <hariombalhara@gmail.com> Co-authored-by: Mehul <mehulzr@gmail.com> * chore: add Timezone Select in storybook (CALCOM-10760) (#10966) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> * chore: add Switch in storybook (CALCOM-10760) (#10804) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> * Sync packages * fix: zod utils due to upgrade * easy fix (#11054) * fix sub quantity update stripe (#11057) * v3.2.7 * Revert "feat: adds next cold start profiler (#11014)" (#11072) This reverts commit 05631d093f30f9c74ebc58b0ff6a8b11824dffe1. * fix: Fixes username invite issue (#10998) * Fixes username invite issue * Ensure we only suggest email invites in org members --------- Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> * Fix sheet layout * WIP permissions when userschedule doesnt match * WIP get handler weird behaviour * Update toast * add disabled - handle membership overlap * Handle permissions + perf improvments * use input uid * Remove Console.log * Clean up * Revert changes accidental * Fix merge artifacts * Remove dead code * Remove code after return * Update read permission check * Revert avatar changes as fixed elsewhere * Handle if user has not completed onboarding * Disable button * Update packages/lib/hasEditPermissionForUser.ts * Correct Error throwing * Update packages/features/timezone-buddy/components/AvailabilityEditSheet.tsx * Fix type erro * Add i18n * Improve Spacing * Update yarn.lock --------- Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> Co-authored-by: Crowdin Bot <support+bot@crowdin.com> Co-authored-by: GitStart-Cal.com <121884634+gitstart-calcom@users.noreply.github.com> Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Shivam Kalra <shivamkalra98@gmail.com> Co-authored-by: nicktrn <55853254+nicktrn@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: alannnc <alannnc@gmail.com> Co-authored-by: Leo Giovanetti <hello@leog.me> Co-authored-by: DexterStorey <36115192+DexterStorey@users.noreply.github.com> Co-authored-by: tedspare <ted.spare@gmail.com> Co-authored-by: Alex van Andel <me@alexvanandel.com> Co-authored-by: Monto <138862352+montocoder@users.noreply.github.com> Co-authored-by: mohammed gehad <mohammed.gehad.1998@gmail.com> Co-authored-by: Monto <138862352+monto7926@users.noreply.github.com> Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> Co-authored-by: Abhijeet Singh <asingh9829@gmail.com> Co-authored-by: Kamil B. Demirci <kamil.demirci@indyaner.ch> Co-authored-by: Denzil Samuel <71846487+samueldenzil@users.noreply.github.com> Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com> Co-authored-by: Omar López <zomars@me.com> Co-authored-by: Hariom Balhara <hariombalhara@gmail.com> Co-authored-by: Sahil Padvi <71093044+Sahil25061999@users.noreply.github.com> Co-authored-by: Patel Divyesh <pateldivyesh1323@gmail.com> Co-authored-by: neo773 <62795688+neo773@users.noreply.github.com> Co-authored-by: Mehul <mehulzr@gmail.com>
2023-09-14 08:45:13 +00:00
import { hasEditPermissionForUserID } from "@calcom/lib/hasEditPermissionForUser";
import { prisma } from "@calcom/prisma";
import { TRPCError } from "@trpc/server";
import type { TrpcSessionUser } from "../../../../trpc";
import { convertScheduleToAvailability, setupDefaultSchedule } from "../util";
import type { TUpdateInputSchema } from "./update.schema";
type UpdateOptions = {
ctx: {
user: NonNullable<TrpcSessionUser>;
};
input: TUpdateInputSchema;
};
export const updateHandler = async ({ input, ctx }: UpdateOptions) => {
const { user } = ctx;
const availability = input.schedule
? getAvailabilityFromSchedule(input.schedule)
: (input.dateOverrides || []).map((dateOverride) => ({
startTime: dateOverride.start,
endTime: dateOverride.end,
date: dateOverride.start,
days: [],
}));
// Not able to update the schedule with userId where clause, so fetch schedule separately and then validate
// Bug: https://github.com/prisma/prisma/issues/7290
const userSchedule = await prisma.schedule.findUnique({
where: {
id: input.scheduleId,
},
select: {
userId: true,
name: true,
id: true,
},
});
feat: editmode availbility slider (#11197) * Add loading data and banner * [WIP] hasEditPerms middleware * fix: type error in booker (#11011) * New Crowdin translations by Github Action * refactor: removed redundant test (#10785) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Shivam Kalra <shivamkalra98@gmail.com> * feat: 2fa backup codes (#10600) Co-authored-by: Peer Richelsen <peeroke@gmail.com> * Delete add-PRs-to-project-reviewing-PRs.yml (#11008) Co-authored-by: alannnc <alannnc@gmail.com> * New Crowdin translations by Github Action * fix: multiple duration when booking (#11032) * fix: other reported issues (#11015) * fix: weird margin top in avatar * fix: pending users are shown on booking page * fix: avatar and naming issues * fix: toast alignment and removing unneeded titles * missing changes from toast improvements * feat: empty state for teams without event types * Removing console.log * feat: cal ai (#10992) Co-authored-by: nicktrn <55853254+nicktrn@users.noreply.github.com> Co-authored-by: tedspare <ted.spare@gmail.com> Co-authored-by: Alex van Andel <me@alexvanandel.com> * New Crowdin translations by Github Action * fix: meeting ended trigger for webhooks and zapier sometimes not working (#10946) Co-authored-by: mohammed gehad <mohammed.gehad.1998@gmail.com> Co-authored-by: Monto <138862352+monto7926@users.noreply.github.com> Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> * feat: team admin: see connected apps of team members (#11036) * added feature:team admin can see connected apps of members * fixed the type error * Update packages/lib/server/queries/teams/index.ts * Minor fixes --------- Co-authored-by: alannnc <alannnc@gmail.com> * fix: lower case slugs in teams (#11026) * fix: lower case slugs in teams Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: use slugify Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> --------- Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * refactor: improvements on german translation (#10898) * fix: fix-tablet-menu-not-centered-sidebar (#11020) Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> * chore: add Popover in storybook (#11021) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: Set mobile availability (#11027) * chore: add ColorPicker in storybook (CALCOM-10760) (#10866) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * feat: adds next cold start profiler (#11014) * Handle disabling of ORGANIZATIONS_ENABLED flag (#11041) * New Crowdin translations by Github Action * styles:dark mode color fix (#11004) * chore: sheet darkmode and improve responsive (#11047) * fix: handle collective multiple host on destinationCalendar (#10967) * fix: include app data and credentials from DB (#11048) * include app data and credentials from DB * Improve performance * fix: Error when running storybook (#11037) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> * fix: broken company profile link on team booking page (#10978) * chore: add ErrorBoundary in storybook (CALCOM-10760) (#10872) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * feat: sorting for workflow and routing forms (#10780) Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Co-authored-by: Peer Richelsen <peeroke@gmail.com> * resolve zod versions across child packages (#11052) * fix: List storybook file is empty (fix-list) (#10965) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * fix: admin org list without members (#11051) Co-authored-by: Peer Richelsen <peeroke@gmail.com> * chore: add ToggleGroup in storybook (#10802) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com> * fix: add metadata to stripe payment intent (#11053) * fix: Logo storybook file with invalid icons (fix-logo) (#11018) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * fix: Add controls for Select Field storybook file (#10936) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * fix: Fix tooltip control on ButtonPlayground storybook file (fix-ButtonTooltip) (#10937) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * fix: email embed – remove collapsible and permanently show times (#10996) Co-authored-by: Hariom Balhara <hariombalhara@gmail.com> Co-authored-by: Mehul <mehulzr@gmail.com> * chore: add Timezone Select in storybook (CALCOM-10760) (#10966) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> * chore: add Switch in storybook (CALCOM-10760) (#10804) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> * Sync packages * fix: zod utils due to upgrade * easy fix (#11054) * fix sub quantity update stripe (#11057) * v3.2.7 * Revert "feat: adds next cold start profiler (#11014)" (#11072) This reverts commit 05631d093f30f9c74ebc58b0ff6a8b11824dffe1. * fix: Fixes username invite issue (#10998) * Fixes username invite issue * Ensure we only suggest email invites in org members --------- Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> * Fix sheet layout * WIP permissions when userschedule doesnt match * WIP get handler weird behaviour * Update toast * add disabled - handle membership overlap * Handle permissions + perf improvments * use input uid * Remove Console.log * Clean up * Revert changes accidental * Fix merge artifacts * Remove dead code * Remove code after return * Update read permission check * Revert avatar changes as fixed elsewhere * Handle if user has not completed onboarding * Disable button * Update packages/lib/hasEditPermissionForUser.ts * Correct Error throwing * Update packages/features/timezone-buddy/components/AvailabilityEditSheet.tsx * Fix type erro * Add i18n * Improve Spacing * Update yarn.lock --------- Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> Co-authored-by: Crowdin Bot <support+bot@crowdin.com> Co-authored-by: GitStart-Cal.com <121884634+gitstart-calcom@users.noreply.github.com> Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Shivam Kalra <shivamkalra98@gmail.com> Co-authored-by: nicktrn <55853254+nicktrn@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: alannnc <alannnc@gmail.com> Co-authored-by: Leo Giovanetti <hello@leog.me> Co-authored-by: DexterStorey <36115192+DexterStorey@users.noreply.github.com> Co-authored-by: tedspare <ted.spare@gmail.com> Co-authored-by: Alex van Andel <me@alexvanandel.com> Co-authored-by: Monto <138862352+montocoder@users.noreply.github.com> Co-authored-by: mohammed gehad <mohammed.gehad.1998@gmail.com> Co-authored-by: Monto <138862352+monto7926@users.noreply.github.com> Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> Co-authored-by: Abhijeet Singh <asingh9829@gmail.com> Co-authored-by: Kamil B. Demirci <kamil.demirci@indyaner.ch> Co-authored-by: Denzil Samuel <71846487+samueldenzil@users.noreply.github.com> Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com> Co-authored-by: Omar López <zomars@me.com> Co-authored-by: Hariom Balhara <hariombalhara@gmail.com> Co-authored-by: Sahil Padvi <71093044+Sahil25061999@users.noreply.github.com> Co-authored-by: Patel Divyesh <pateldivyesh1323@gmail.com> Co-authored-by: neo773 <62795688+neo773@users.noreply.github.com> Co-authored-by: Mehul <mehulzr@gmail.com>
2023-09-14 08:45:13 +00:00
if (!userSchedule) {
throw new TRPCError({
code: "UNAUTHORIZED",
});
}
feat: editmode availbility slider (#11197) * Add loading data and banner * [WIP] hasEditPerms middleware * fix: type error in booker (#11011) * New Crowdin translations by Github Action * refactor: removed redundant test (#10785) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Shivam Kalra <shivamkalra98@gmail.com> * feat: 2fa backup codes (#10600) Co-authored-by: Peer Richelsen <peeroke@gmail.com> * Delete add-PRs-to-project-reviewing-PRs.yml (#11008) Co-authored-by: alannnc <alannnc@gmail.com> * New Crowdin translations by Github Action * fix: multiple duration when booking (#11032) * fix: other reported issues (#11015) * fix: weird margin top in avatar * fix: pending users are shown on booking page * fix: avatar and naming issues * fix: toast alignment and removing unneeded titles * missing changes from toast improvements * feat: empty state for teams without event types * Removing console.log * feat: cal ai (#10992) Co-authored-by: nicktrn <55853254+nicktrn@users.noreply.github.com> Co-authored-by: tedspare <ted.spare@gmail.com> Co-authored-by: Alex van Andel <me@alexvanandel.com> * New Crowdin translations by Github Action * fix: meeting ended trigger for webhooks and zapier sometimes not working (#10946) Co-authored-by: mohammed gehad <mohammed.gehad.1998@gmail.com> Co-authored-by: Monto <138862352+monto7926@users.noreply.github.com> Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> * feat: team admin: see connected apps of team members (#11036) * added feature:team admin can see connected apps of members * fixed the type error * Update packages/lib/server/queries/teams/index.ts * Minor fixes --------- Co-authored-by: alannnc <alannnc@gmail.com> * fix: lower case slugs in teams (#11026) * fix: lower case slugs in teams Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: use slugify Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> --------- Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * refactor: improvements on german translation (#10898) * fix: fix-tablet-menu-not-centered-sidebar (#11020) Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> * chore: add Popover in storybook (#11021) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: Set mobile availability (#11027) * chore: add ColorPicker in storybook (CALCOM-10760) (#10866) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * feat: adds next cold start profiler (#11014) * Handle disabling of ORGANIZATIONS_ENABLED flag (#11041) * New Crowdin translations by Github Action * styles:dark mode color fix (#11004) * chore: sheet darkmode and improve responsive (#11047) * fix: handle collective multiple host on destinationCalendar (#10967) * fix: include app data and credentials from DB (#11048) * include app data and credentials from DB * Improve performance * fix: Error when running storybook (#11037) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> * fix: broken company profile link on team booking page (#10978) * chore: add ErrorBoundary in storybook (CALCOM-10760) (#10872) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * feat: sorting for workflow and routing forms (#10780) Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Co-authored-by: Peer Richelsen <peeroke@gmail.com> * resolve zod versions across child packages (#11052) * fix: List storybook file is empty (fix-list) (#10965) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * fix: admin org list without members (#11051) Co-authored-by: Peer Richelsen <peeroke@gmail.com> * chore: add ToggleGroup in storybook (#10802) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com> * fix: add metadata to stripe payment intent (#11053) * fix: Logo storybook file with invalid icons (fix-logo) (#11018) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * fix: Add controls for Select Field storybook file (#10936) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * fix: Fix tooltip control on ButtonPlayground storybook file (fix-ButtonTooltip) (#10937) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> * fix: email embed – remove collapsible and permanently show times (#10996) Co-authored-by: Hariom Balhara <hariombalhara@gmail.com> Co-authored-by: Mehul <mehulzr@gmail.com> * chore: add Timezone Select in storybook (CALCOM-10760) (#10966) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> * chore: add Switch in storybook (CALCOM-10760) (#10804) Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> * Sync packages * fix: zod utils due to upgrade * easy fix (#11054) * fix sub quantity update stripe (#11057) * v3.2.7 * Revert "feat: adds next cold start profiler (#11014)" (#11072) This reverts commit 05631d093f30f9c74ebc58b0ff6a8b11824dffe1. * fix: Fixes username invite issue (#10998) * Fixes username invite issue * Ensure we only suggest email invites in org members --------- Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> * Fix sheet layout * WIP permissions when userschedule doesnt match * WIP get handler weird behaviour * Update toast * add disabled - handle membership overlap * Handle permissions + perf improvments * use input uid * Remove Console.log * Clean up * Revert changes accidental * Fix merge artifacts * Remove dead code * Remove code after return * Update read permission check * Revert avatar changes as fixed elsewhere * Handle if user has not completed onboarding * Disable button * Update packages/lib/hasEditPermissionForUser.ts * Correct Error throwing * Update packages/features/timezone-buddy/components/AvailabilityEditSheet.tsx * Fix type erro * Add i18n * Improve Spacing * Update yarn.lock --------- Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> Co-authored-by: Crowdin Bot <support+bot@crowdin.com> Co-authored-by: GitStart-Cal.com <121884634+gitstart-calcom@users.noreply.github.com> Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Shivam Kalra <shivamkalra98@gmail.com> Co-authored-by: nicktrn <55853254+nicktrn@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: alannnc <alannnc@gmail.com> Co-authored-by: Leo Giovanetti <hello@leog.me> Co-authored-by: DexterStorey <36115192+DexterStorey@users.noreply.github.com> Co-authored-by: tedspare <ted.spare@gmail.com> Co-authored-by: Alex van Andel <me@alexvanandel.com> Co-authored-by: Monto <138862352+montocoder@users.noreply.github.com> Co-authored-by: mohammed gehad <mohammed.gehad.1998@gmail.com> Co-authored-by: Monto <138862352+monto7926@users.noreply.github.com> Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> Co-authored-by: Abhijeet Singh <asingh9829@gmail.com> Co-authored-by: Kamil B. Demirci <kamil.demirci@indyaner.ch> Co-authored-by: Denzil Samuel <71846487+samueldenzil@users.noreply.github.com> Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com> Co-authored-by: Omar López <zomars@me.com> Co-authored-by: Hariom Balhara <hariombalhara@gmail.com> Co-authored-by: Sahil Padvi <71093044+Sahil25061999@users.noreply.github.com> Co-authored-by: Patel Divyesh <pateldivyesh1323@gmail.com> Co-authored-by: neo773 <62795688+neo773@users.noreply.github.com> Co-authored-by: Mehul <mehulzr@gmail.com>
2023-09-14 08:45:13 +00:00
if (userSchedule?.userId !== user.id) {
const hasEditPermission = await hasEditPermissionForUserID({
ctx,
input: { memberId: userSchedule.userId },
});
if (!hasEditPermission) {
throw new TRPCError({
code: "UNAUTHORIZED",
});
}
}
let updatedUser;
if (input.isDefault) {
const setupDefault = await setupDefaultSchedule(user.id, input.scheduleId, prisma);
updatedUser = setupDefault;
}
if (!input.name) {
// TODO: Improve
// We don't want to pass the full schedule for just a set as default update
// but in the current logic, this wipes the existing availability.
// Return early to prevent this from happening.
return {
schedule: userSchedule,
isDefault: updatedUser
? updatedUser.defaultScheduleId === input.scheduleId
: user.defaultScheduleId === input.scheduleId,
};
}
const schedule = await prisma.schedule.update({
where: {
id: input.scheduleId,
},
data: {
timeZone: input.timeZone,
name: input.name,
availability: {
deleteMany: {
scheduleId: {
equals: input.scheduleId,
},
},
createMany: {
data: [
...availability,
...(input.dateOverrides || []).map((override) => ({
date: override.start,
startTime: override.start,
endTime: override.end,
})),
],
},
},
},
select: {
id: true,
userId: true,
name: true,
availability: true,
timeZone: true,
eventType: {
select: {
_count: true,
id: true,
eventName: true,
},
},
},
});
const userAvailability = convertScheduleToAvailability(schedule);
return {
schedule,
availability: userAvailability,
timeZone: schedule.timeZone || user.timeZone,
isDefault: updatedUser
? updatedUser.defaultScheduleId === schedule.id
: user.defaultScheduleId === schedule.id,
prevDefaultId: user.defaultScheduleId,
currentDefaultId: updatedUser ? updatedUser.defaultScheduleId : user.defaultScheduleId,
};
};