import { Handler } from "elysia";
import {
companiesSchema,
getCompaniesSchema,
} from "../routes/schema/companies-schema";
// Services
import {
getPaginatedCompanies,
getAllCompanies,
} from "../services/companies-service";
interface ICompaniesHandler {
getCompanies: Handler<typeof getCompaniesSchema>;
addCompany: Handler;
}
const companiesHandler: ICompaniesHandler = {
getCompanies: async ({ query, set }) => {
// Extract Page and Limit
const { page = 1, limit = 5 } = query;
// Init Offset
const offset = (page - 1) * limit;
// Get Companies and Count
const companies = await getPaginatedCompanies.execute({
limit,
offset,
});
const total_count = (await getAllCompanies.execute()).length;
set.status = 200;
const response = {
data: companies,
pagination: {
page,
limit,
total_count,
},
};
return response;
},
addCompany: async ({}) => {},
};
export default companiesHandler;
import { Handler } from "elysia";
import {
companiesSchema,
getCompaniesSchema,
} from "../routes/schema/companies-schema";
// Services
import {
getPaginatedCompanies,
getAllCompanies,
} from "../services/companies-service";
interface ICompaniesHandler {
getCompanies: Handler<typeof getCompaniesSchema>;
addCompany: Handler;
}
const companiesHandler: ICompaniesHandler = {
getCompanies: async ({ query, set }) => {
// Extract Page and Limit
const { page = 1, limit = 5 } = query;
// Init Offset
const offset = (page - 1) * limit;
// Get Companies and Count
const companies = await getPaginatedCompanies.execute({
limit,
offset,
});
const total_count = (await getAllCompanies.execute()).length;
set.status = 200;
const response = {
data: companies,
pagination: {
page,
limit,
total_count,
},
};
return response;
},
addCompany: async ({}) => {},
};
export default companiesHandler;