Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 3.8k
feat(workday): block + tools + misc fixes#3663
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
Changes from all commits
4a2b8b8734f4ee70ff0ee8120712e2b7812e1e5a0601a7fbc9e022474b5e192db76e5b50f68fce74a6683d1e33aFile filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,67 @@ | ||
| import { createLogger } from '@sim/logger' | ||
| import { type NextRequest, NextResponse } from 'next/server' | ||
| import { z } from 'zod' | ||
| import { checkInternalAuth } from '@/lib/auth/hybrid' | ||
| import { generateRequestId } from '@/lib/core/utils/request' | ||
| import { createWorkdaySoapClient, extractRefId, wdRef } from '@/tools/workday/soap' | ||
| export const dynamic = 'force-dynamic' | ||
| const logger = createLogger('WorkdayAssignOnboardingAPI') | ||
| const RequestSchema = z.object({ | ||
| tenantUrl: z.string().min(1), | ||
| tenant: z.string().min(1), | ||
| username: z.string().min(1), | ||
| password: z.string().min(1), | ||
| workerId: z.string().min(1), | ||
| onboardingPlanId: z.string().min(1), | ||
| actionEventId: z.string().min(1), | ||
| }) | ||
| export async function POST(request: NextRequest) { | ||
| const requestId = generateRequestId() | ||
| try { | ||
| const authResult = await checkInternalAuth(request, { requireWorkflowId: false }) | ||
| if (!authResult.success) { | ||
| return NextResponse.json({ success: false, error: 'Unauthorized' }, { status: 401 }) | ||
| } | ||
| const body = await request.json() | ||
| const data = RequestSchema.parse(body) | ||
| const client = await createWorkdaySoapClient( | ||
| data.tenantUrl, | ||
| data.tenant, | ||
| 'humanResources', | ||
| data.username, | ||
| data.password | ||
| ) | ||
| const [result] = await client.Put_Onboarding_Plan_AssignmentAsync({ | ||
| Onboarding_Plan_Assignment_Data: { | ||
| Onboarding_Plan_Reference: wdRef('Onboarding_Plan_ID', data.onboardingPlanId), | ||
| Person_Reference: wdRef('WID', data.workerId), | ||
| Action_Event_Reference: wdRef('Background_Check_ID', data.actionEventId), | ||
icecrasher321 marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| Assignment_Effective_Moment: new Date().toISOString(), | ||
| Active: true, | ||
| }, | ||
| }) | ||
| return NextResponse.json({ | ||
icecrasher321 marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| success: true, | ||
| output: { | ||
| assignmentId: extractRefId(result?.Onboarding_Plan_Assignment_Reference), | ||
| workerId: data.workerId, | ||
| planId: data.onboardingPlanId, | ||
| }, | ||
| }) | ||
| } catch (error) { | ||
| logger.error(`[${requestId}] Workday assign onboarding failed`, { error }) | ||
| return NextResponse.json( | ||
| { success: false, error: error instanceof Error ? error.message : 'Unknown error' }, | ||
| { status: 500 } | ||
| ) | ||
| } | ||
| } | ||
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.