diff --git a/webapp/src/app/api/user/actions/services-all/route.ts b/webapp/src/app/api/user/actions/services-all/route.ts new file mode 100644 index 0000000..06b228c --- /dev/null +++ b/webapp/src/app/api/user/actions/services-all/route.ts @@ -0,0 +1,44 @@ +import dbConnect from "@/database/dbConnect"; +import { NextResponse } from "next/server"; +import serviceModel from "@/database/models/serviceModel"; + +// GET METHOD - Load all active services without pagination +export async function GET(req: Request) { + try { + // connect to the db + await dbConnect(); + + // get all active services + const docs = await serviceModel.find({ status: "active" }).sort({ addedAt: -1 }); + + // prepare the return data + return NextResponse.json({ + success: true, + message: "docsGetedSuccessfully", + data: { + docs, + docs_count: docs.length, + } + }, { + status: 200, + headers: { + "content-type": "application/json" + } + }); + } catch (e) { + console.log(e); + // catch any error and return an error response + return NextResponse.json({ + success: false, + message: "serverError", + }, { + status: 500, + headers: { + "content-type": "application/json" + } + }); + } +} + +// set the revalidate variable +export const revalidate = 5; \ No newline at end of file diff --git a/webapp/src/components/dashboard/members/parts/addPopUp.tsx b/webapp/src/components/dashboard/members/parts/addPopUp.tsx index 3f973b1..81083eb 100644 --- a/webapp/src/components/dashboard/members/parts/addPopUp.tsx +++ b/webapp/src/components/dashboard/members/parts/addPopUp.tsx @@ -18,7 +18,7 @@ import * as Yup from "yup"; import Select from 'react-select' import { components } from 'react-select'; import searchForServices from "@/functions/requests/members/searchForServices"; -import loadAllServices from "@/functions/requests/members/loadAllServices"; +import loadAllActiveServices from "@/functions/requests/members/loadAllActiveServices"; export default function AddPopUp() { @@ -232,7 +232,7 @@ export default function AddPopUp() useEffect(() => { async function loadServices() { try { - let docs = await loadAllServices(); + let docs = await loadAllActiveServices(); let options = docs.map((v, i) => { return {value: v._id, label: v.name} }); diff --git a/webapp/src/components/dashboard/members/parts/updateSubPopUp.tsx b/webapp/src/components/dashboard/members/parts/updateSubPopUp.tsx index a3f9cd6..448dae3 100644 --- a/webapp/src/components/dashboard/members/parts/updateSubPopUp.tsx +++ b/webapp/src/components/dashboard/members/parts/updateSubPopUp.tsx @@ -17,7 +17,7 @@ import DialogActions from '@mui/material/DialogActions'; import CircularProgress from '@mui/material/CircularProgress'; import Select from 'react-select' import { components } from 'react-select'; -import loadAllServices from "@/functions/requests/members/loadAllServices"; +import loadAllActiveServices from "@/functions/requests/members/loadAllActiveServices"; import { useRouter } from 'next/navigation'; export default function UpdateSubPopUp() @@ -135,7 +135,7 @@ export default function UpdateSubPopUp() useEffect(() => { async function loadServices() { try { - let docs = await loadAllServices(); + let docs = await loadAllActiveServices(); let options = docs.map((v, i) => { return {value: v._id, label: v.name} }); diff --git a/webapp/src/functions/requests/members/loadAllActiveServices.ts b/webapp/src/functions/requests/members/loadAllActiveServices.ts new file mode 100644 index 0000000..740dcb4 --- /dev/null +++ b/webapp/src/functions/requests/members/loadAllActiveServices.ts @@ -0,0 +1,10 @@ +import axios from 'axios' +import { IServicesSchema } from '@/types/IDB' + +const ACTION_NAME = 'services-all' + +export default async function loadAllActiveServices(): Promise { + const { data } = await axios.get(`/api/user/actions/${ACTION_NAME}`); + const docs: IServicesSchema[] = data.data.docs; + return docs; +} \ No newline at end of file