Fixes
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import { type Actions, error, fail, redirect } from '@sveltejs/kit';
|
||||
import type { PageServerLoad } from './$types';
|
||||
import { editApplication, getEditApplicationPageData } from '$lib/db/index.server';
|
||||
import { getUserId, getUserPerms } from '$lib/index.server';
|
||||
import { PERMISSIONS } from '$lib/consts';
|
||||
import type { Application } from '$lib/types';
|
||||
|
||||
export const load: PageServerLoad = async ({ url, cookies }) => {
|
||||
if (!url.searchParams.has('id')) {
|
||||
error(400, 'Missing required parameter: id');
|
||||
}
|
||||
|
||||
// Permission check (apply perm)
|
||||
const id = parseInt(url.searchParams.get('id')!);
|
||||
const perms = getUserPerms(cookies);
|
||||
if (perms >= 0 && (perms & PERMISSIONS.APPLY_FOR_JOBS) > 0) {
|
||||
return await getEditApplicationPageData(id);
|
||||
}
|
||||
error(403, 'Unauthorized');
|
||||
};
|
||||
|
||||
export const actions: Actions = {
|
||||
// Application submission
|
||||
submit: async ({ request, cookies, params, url }) => {
|
||||
// Permission check (apply perm)
|
||||
if (!((getUserPerms(cookies) & PERMISSIONS.APPLY_FOR_JOBS) > 0)) {
|
||||
return fail(403, { errorMessage: 'Unauthorized' });
|
||||
}
|
||||
|
||||
const data = await request.formData();
|
||||
const candidateStatement = data.get('candidateStatement')?.toString().trim();
|
||||
|
||||
// Statement data validation
|
||||
if (!candidateStatement || candidateStatement === '') {
|
||||
return fail(400, { errorMessage: 'Candidate statement is required' });
|
||||
}
|
||||
|
||||
// Push to DB and redirect
|
||||
if (!url.searchParams.has('id')) {
|
||||
error(400, 'Missing required parameter: id');
|
||||
}
|
||||
const id: number = parseInt(url.searchParams.get('id')!);
|
||||
|
||||
await editApplication(<Application>{ id, candidateStatement });
|
||||
redirect(301, `/postings`);
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user