Add History Drawer & Clean up APIs. Will clean up more when I am home and have updated the iOS app.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
"use server";
|
||||
import { NextResponse } from 'next/server';
|
||||
import { getEmployees } from '~/server/functions';
|
||||
import { auth } from '~/auth';
|
||||
|
||||
type Technician = {
|
||||
name: string;
|
||||
@@ -10,27 +11,30 @@ type Technician = {
|
||||
|
||||
export const GET = async (request: Request) => {
|
||||
try {
|
||||
const url = new URL(request.url);
|
||||
const apiKey = url.searchParams.get('apikey');
|
||||
if (apiKey !== process.env.API_KEY)
|
||||
return NextResponse.json(
|
||||
{ message: 'Unauthorized' },
|
||||
{ status: 401 }
|
||||
);
|
||||
const employees = await getEmployees();
|
||||
// Necessary because I haven't updated the iOS app
|
||||
// yet to expect updatedAt rather than time
|
||||
const formattedEmployees = employees.map((employee: Technician) => ({
|
||||
name: employee.name,
|
||||
status: employee.status,
|
||||
time: employee.updatedAt
|
||||
}));
|
||||
return NextResponse.json(formattedEmployees, { status: 200 });
|
||||
const session = await auth();
|
||||
if (!session) {
|
||||
const url = new URL(request.url);
|
||||
const apiKey = url.searchParams.get('apikey');
|
||||
if (apiKey !== process.env.API_KEY)
|
||||
return NextResponse.json(
|
||||
{ message: 'Unauthorized' },
|
||||
{ status: 401 }
|
||||
);
|
||||
else {
|
||||
const employees = await getEmployees();
|
||||
const formattedEmployees = employees.map((employee: Technician) => ({
|
||||
name: employee.name,
|
||||
status: employee.status,
|
||||
time: employee.updatedAt
|
||||
}));
|
||||
return NextResponse.json(formattedEmployees, { status: 200 });
|
||||
}
|
||||
} else {
|
||||
const employees = await getEmployees();
|
||||
return NextResponse.json(employees, { status: 200 });
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error fetching employees:', error);
|
||||
return NextResponse.json(
|
||||
{ message: 'Internal server error' },
|
||||
{ status: 500 }
|
||||
);
|
||||
return NextResponse.json({ message: 'Internal server error' }, { status: 500 });
|
||||
}
|
||||
};
|
||||
|
44
src/app/api/update_status_by_id/route.ts
Normal file
44
src/app/api/update_status_by_id/route.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
// Update Employee Status by IDs
|
||||
"use server";
|
||||
import { NextResponse } from 'next/server';
|
||||
import type { NextRequest } from 'next/server';
|
||||
import { updateEmployeeStatus } from '~/server/functions';
|
||||
import { auth } from '~/auth';
|
||||
|
||||
type UpdateStatusBody = {
|
||||
employeeIds: string[];
|
||||
newStatus: string;
|
||||
};
|
||||
|
||||
export const POST = async (req: NextRequest) => {
|
||||
const session = await auth();
|
||||
if (!session) {
|
||||
const url = new URL(req.url);
|
||||
const apiKey = url.searchParams.get('apikey');
|
||||
if (apiKey !== process.env.API_KEY)
|
||||
return NextResponse.json(
|
||||
{ message: 'Unauthorized' },
|
||||
{ status: 401 }
|
||||
);
|
||||
} else {
|
||||
const { employeeIds, newStatus } = await req.json() as UpdateStatusBody;
|
||||
if (!Array.isArray(employeeIds) || typeof newStatus !== 'string')
|
||||
return NextResponse.json(
|
||||
{ message: 'Invalid input' },
|
||||
{ status: 400 }
|
||||
);
|
||||
try {
|
||||
await updateEmployeeStatus(employeeIds, newStatus);
|
||||
return NextResponse.json(
|
||||
{ message: 'Status updated successfully' },
|
||||
{ status: 200 }
|
||||
);
|
||||
} catch (error) {
|
||||
console.error('Error updating status:', error);
|
||||
return NextResponse.json(
|
||||
{ message: 'Internal server error' },
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
@@ -1,8 +1,9 @@
|
||||
// Update Employee Status by Names
|
||||
"use server";
|
||||
import { NextResponse } from 'next/server';
|
||||
import { updateEmployeeStatusByName } from '~/server/functions';
|
||||
|
||||
interface Technician {
|
||||
type Technician = {
|
||||
name: string;
|
||||
status: string;
|
||||
}
|
||||
|
@@ -1,17 +0,0 @@
|
||||
"use server";
|
||||
import { NextResponse } from 'next/server';
|
||||
import { getEmployees } from '~/server/functions';
|
||||
import { auth } from '~/auth';
|
||||
|
||||
export const GET = async () => {
|
||||
try {
|
||||
const session = await auth();
|
||||
if (!session)
|
||||
return NextResponse.json({ message: 'Unauthorized' }, { status: 401 });
|
||||
const employees = await getEmployees();
|
||||
return NextResponse.json(employees, { status: 200 });
|
||||
} catch (error) {
|
||||
console.error('Error fetching employees:', error);
|
||||
return NextResponse.json({ message: 'Internal server error' }, { status: 500 });
|
||||
}
|
||||
};
|
@@ -1,38 +0,0 @@
|
||||
"use server";
|
||||
import { NextResponse } from 'next/server';
|
||||
import type { NextRequest } from 'next/server';
|
||||
import { updateEmployeeStatus } from '~/server/functions';
|
||||
import { auth } from '~/auth';
|
||||
|
||||
type UpdateStatusBody = {
|
||||
employeeIds: string[];
|
||||
newStatus: string;
|
||||
};
|
||||
|
||||
export const POST = async (req: NextRequest) => {
|
||||
const session = await auth();
|
||||
if (!session)
|
||||
return NextResponse.json(
|
||||
{ message: 'Unauthorized' },
|
||||
{ status: 401 }
|
||||
);
|
||||
const { employeeIds, newStatus } = await req.json() as UpdateStatusBody;
|
||||
if (!Array.isArray(employeeIds) || typeof newStatus !== 'string')
|
||||
return NextResponse.json(
|
||||
{ message: 'Invalid input' },
|
||||
{ status: 400 }
|
||||
);
|
||||
try {
|
||||
await updateEmployeeStatus(employeeIds, newStatus);
|
||||
return NextResponse.json(
|
||||
{ message: 'Status updated successfully' },
|
||||
{ status: 200 }
|
||||
);
|
||||
} catch (error) {
|
||||
console.error('Error updating status:', error);
|
||||
return NextResponse.json(
|
||||
{ message: 'Internal server error' },
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
};
|
Reference in New Issue
Block a user