Skip to content

Commit

Permalink
Merge pull request #34 from Vero-Ventures/33-add-get-request-to-retri…
Browse files Browse the repository at this point in the history
…eve-the-total-number-of-job-postings

Add Get request that returns the total number of job postings in each four front-end page
  • Loading branch information
Soohyeun authored May 11, 2024
2 parents e40065d + 6eac862 commit 4f9db3b
Show file tree
Hide file tree
Showing 5 changed files with 98 additions and 0 deletions.
22 changes: 22 additions & 0 deletions src/app/api/job-posting/disabled/total-posts/route.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { NextResponse } from 'next/server';
import { getTotalNumberOfPostings, handleError } from '../../siteRequestUtils';

export async function GET() {
try {
const siteCriteria = { site3: true };

let jobPostings = await getTotalNumberOfPostings(siteCriteria);

if (jobPostings < 1) {
return NextResponse.json(
{ message: 'Not Found - No job postings found on this page' },
{ status: 404 }
);
}

return NextResponse.json({ jobPostings }, { status: 200 });
} catch (error) {
// Handle errors
return handleError(error);
}
}
22 changes: 22 additions & 0 deletions src/app/api/job-posting/indigenous/total-posts/route.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { NextResponse } from 'next/server';
import { getTotalNumberOfPostings, handleError } from '../../siteRequestUtils';

export async function GET() {
try {
const siteCriteria = { site1: true };

let jobPostings = await getTotalNumberOfPostings(siteCriteria);

if (jobPostings < 1) {
return NextResponse.json(
{ message: 'Not Found - No job postings found on this page' },
{ status: 404 }
);
}

return NextResponse.json({ jobPostings }, { status: 200 });
} catch (error) {
// Handle errors
return handleError(error);
}
}
22 changes: 22 additions & 0 deletions src/app/api/job-posting/newcomers/total-posts/route.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { NextResponse } from 'next/server';
import { getTotalNumberOfPostings, handleError } from '../../siteRequestUtils';

export async function GET() {
try {
const siteCriteria = { site2: true };

let jobPostings = await getTotalNumberOfPostings(siteCriteria);

if (jobPostings < 1) {
return NextResponse.json(
{ message: 'Not Found - No job postings found on this page' },
{ status: 404 }
);
}

return NextResponse.json({ jobPostings }, { status: 200 });
} catch (error) {
// Handle errors
return handleError(error);
}
}
10 changes: 10 additions & 0 deletions src/app/api/job-posting/siteRequestUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,16 @@ import { connectMongoDB } from '@/libs/mongodb';
import posting from '@/app/api/posting';
import mongoose from 'mongoose';

// Function to get the total number of job postings
export async function getTotalNumberOfPostings(siteCriteria) {
await connectMongoDB();

const Posting = mongoose.models.posting || mongoose.model('posting', posting);
const totalNumberOfPostings = await Posting.countDocuments(siteCriteria);

return totalNumberOfPostings;
}

// Function to extract pagination parameters
export function getPaginationParams(req) {
const pageSize = 25;
Expand Down
22 changes: 22 additions & 0 deletions src/app/api/job-posting/students/total-posts/route.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { NextResponse } from 'next/server';
import { getTotalNumberOfPostings, handleError } from '../../siteRequestUtils';

export async function GET() {
try {
const siteCriteria = { site4: true };

let jobPostings = await getTotalNumberOfPostings(siteCriteria);

if (jobPostings < 1) {
return NextResponse.json(
{ message: 'Not Found - No job postings found on this page' },
{ status: 404 }
);
}

return NextResponse.json({ jobPostings }, { status: 200 });
} catch (error) {
// Handle errors
return handleError(error);
}
}

0 comments on commit 4f9db3b

Please sign in to comment.