Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions api/src/config/dev.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@ export const devConfig = {
AZURE_NA: "https://azure-na-app.contentstack.com/#!",
AZURE_EU: "https://azure-eu-app.contentstack.com/#!",
},
LOG_FILE_PATH:
process.platform === "win32" ? ".\\combine.log" : "./combine.log", // Replace with the actual path to your log file
};
31 changes: 29 additions & 2 deletions api/src/config/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,17 @@ dotenv.config({
path: path.resolve(process.cwd(), `${process.env.NODE_ENV}.env`),
});

/**
* Configuration type for the application.
*/
export type ConfigType = {
APP_TOKEN_EXP: string;
APP_TOKEN_KEY: string;
FILE_UPLOAD_KEY: string;
PORT: string;
APP_ENV: string;
MONGODB_URI: string;
LOG_FILE_PATH: string;
CS_API: {
NA: string;
EU: string;
Expand All @@ -28,12 +32,35 @@ export type ConfigType = {
};
};

/**
* Loads the configuration from environment variables and returns the configuration object.
* @returns The configuration object.
*/
export const config: ConfigType = {
/**
* Expiration time for the application token.
*/
APP_TOKEN_EXP: "1d",
PORT: process.env.PORT!,
APP_ENV: process.env.NODE_ENV!,
/**
* Key used to sign the application token.
*/
APP_TOKEN_KEY: process.env.APP_TOKEN_KEY!,
/**
* Key used for file uploads.
*/
FILE_UPLOAD_KEY: process.env.FILE_UPLOAD_KEY!,
/**
* Port on which the server will listen.
*/
PORT: process.env.PORT!,
/**
* Environment in which the application is running.
*/
APP_ENV: process.env.NODE_ENV!,
/**
* MongoDB connection URI.
*/
MONGODB_URI: process.env.MONGODB_URI!,

...(process.env.NODE_ENV === "production" ? prodConfig : devConfig),
};
2 changes: 2 additions & 0 deletions api/src/config/prod.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,6 @@ export const prodConfig = {
AZURE_NA: "https://azure-na-app.contentstack.com/#!",
AZURE_EU: "https://azure-eu-app.contentstack.com/#!",
},
LOG_FILE_PATH:
process.platform === "win32" ? ".\\combine.log" : "./combine.log", // Replace with the actual path to your log file
};
12 changes: 12 additions & 0 deletions api/src/controllers/auth.controller.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,23 @@
import { Request, Response } from "express";
import { authService } from "../services/auth.service.js";

/**
* Handles the login request.
*
* @param req The request object.
* @param res The response object.
*/
const login = async (req: Request, res: Response) => {
const resp = await authService.login(req);
res.status(resp?.status).json(resp?.data);
};

/**
* Handles the request for sending an SMS.
*
* @param req The request object.
* @param res The response object.
*/
const RequestSms = async (req: Request, res: Response) => {
const resp = await authService.requestSms(req);
res.status(resp.status).json(resp.data);
Expand Down
12 changes: 12 additions & 0 deletions api/src/controllers/migration.controller.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,23 @@
import { Request, Response } from "express";
import { migrationService } from "../services/migration.service.js";

/**
* Creates a test stack.
* @param {Request} req - The request object.
* @param {Response} res - The response object.
* @returns {Promise<void>} - A promise that resolves when the operation is complete.
*/
const createTestStack = async (req: Request, res: Response): Promise<void> => {
const resp = await migrationService.createTestStack(req);
res.status(200).json(resp);
};

/**
* Deletes a test stack.
* @param {Request} req - The request object.
* @param {Response} res - The response object.
* @returns {Promise<void>} - A promise that resolves when the operation is complete.
*/
const deleteTestStack = async (req: Request, res: Response): Promise<void> => {
const resp = await migrationService.deleteTestStack(req);
res.status(200).json(resp);
Expand Down
20 changes: 20 additions & 0 deletions api/src/controllers/org.controller.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,41 @@
import { Request, Response } from "express";
import { orgService } from "../services/org.service.js";

/**
* Get all stacks
* @param req - Express request object
* @param res - Express response object
*/
const getAllStacks = async (req: Request, res: Response) => {
const resp = await orgService.getAllStacks(req);
res.status(resp?.status).json(resp?.data);
};

/**
* Create a new stack
* @param req - Express request object
* @param res - Express response object
*/
const createStack = async (req: Request, res: Response) => {
const resp = await orgService.createStack(req);
res.status(resp.status).json(resp.data);
};

/**
* Get all locales
* @param req - Express request object
* @param res - Express response object
*/
const getLocales = async (req: Request, res: Response) => {
const resp = await orgService.getLocales(req);
res.status(resp.status).json(resp.data);
};

/**
* Get stack status
* @param req - Express request object
* @param res - Express response object
*/
const getStackStatus = async (req: Request, res: Response) => {
const resp = await orgService.getStackStatus(req);
res.status(resp.status).json(resp.data);
Expand Down
78 changes: 70 additions & 8 deletions api/src/controllers/projects.contentMapper.controller.ts
Original file line number Diff line number Diff line change
@@ -1,47 +1,98 @@
import { Request, Response } from "express";
import { contentMapperService } from "../services/contentMapper.service.js";

/**
* Puts test data.
* @param req - The request object.
* @param res - The response object.
* @returns Promise<void>
*/
const putTestData = async (req: Request, res: Response): Promise<void> => {
const resp = await contentMapperService.putTestData(req);
res.status(200).json(resp);
};

/**
* Gets content types.
* @param req - The request object.
* @param res - The response object.
* @returns Promise<void>
*/
const getContentTypes = async (req: Request, res: Response): Promise<void> => {
const resp = await contentMapperService.getContentTypes(req);
res.status(200).json(resp);
};

/**
* Gets field mapping.
* @param req - The request object.
* @param res - The response object.
* @returns Promise<void>
*/
const getFieldMapping = async (req: Request, res: Response): Promise<void> => {
const resp = await contentMapperService.getFieldMapping(req);
res.status(200).json(resp);
};

/**
* Gets existing content types.
* @param req - The request object.
* @param res - The response object.
* @returns Promise<void>
*/
const getExistingContentTypes = async (
req: Request,
res: Response
): Promise<void> => {
const resp = await contentMapperService.getExistingContentTypes(req);
res.status(201).json(resp);
};

/**
* Puts content type fields.
* @param req - The request object.
* @param res - The response object.
* @returns Promise<void>
*/
const putContentTypeFields = async (
req: Request,
res: Response
): Promise<void> => {
const resp = await contentMapperService.updateContentType(req);
res.status(200).json(resp);
};

/**
* Resets content type.
* @param req - The request object.
* @param res - The response object.
* @returns Promise<void>
*/
const resetContentType = async (req: Request, res: Response): Promise<void> => {
const resp = await contentMapperService.resetToInitialMapping(req);
res.status(200).json(resp);
};
// TODO Will remove if not required
// const removeMapping = async (req: Request, res: Response): Promise<void> => {
// const resp = await contentMapperService.removeMapping(req);
// res.status(200).json(resp);
// };

const removeContentMapper = async (req: Request, res: Response): Promise<void> => {
/**
* Removes content mapper.
* @param req - The request object.
* @param res - The response object.
* @returns Promise<void>
*/
const removeContentMapper = async (
req: Request,
res: Response
): Promise<void> => {
const resp = await contentMapperService.removeContentMapper(req);
res.status(200).json(resp);
}
};

/**
* Gets single content types.
* @param req - The request object.
* @param res - The response object.
* @returns Promise<void>
*/
const getSingleContentTypes = async (
req: Request,
res: Response
Expand All @@ -50,6 +101,17 @@ const getSingleContentTypes = async (
res.status(201).json(resp);
};

/**
* Removes mapping.
* @param req - The request object.
* @param res - The response object.
* @returns Promise<void>
*/
// const removeMapping = async (req: Request, res: Response): Promise<void> => {
// const resp = await contentMapperService.removeMapping(req);
// res.status(200).json(resp);
// };

export const contentMapperController = {
getContentTypes,
getFieldMapping,
Expand All @@ -59,5 +121,5 @@ export const contentMapperController = {
resetContentType,
// removeMapping,
getSingleContentTypes,
removeContentMapper
removeContentMapper,
};
Loading