feat: create works, just not ideal

This commit is contained in:
Ary
2024-02-25 11:19:27 -07:00
parent ff1496d29f
commit 8ae3bb2df0
7 changed files with 96 additions and 6 deletions
@@ -76,6 +76,11 @@ export class DataProvider {
await this.persist();
}
static async addAlias(newData: Alias) {
data.aliases.push(newData);
await this.persist();
}
static getUserFields() {
return { ...data.userFields };
}
@@ -189,6 +189,23 @@ export const postAliases = async (req: Request, res: Response) => {
}
};
// Create controller for POST request to '/ontime/aliases'
// Returns ACK message
export const postAlias = async (req: Request, res: Response) => {
try {
const newAlias = {
enabled: req.body.enabled,
alias: req.body.alias,
pathAndParams: req.body.pathAndParams,
};
await DataProvider.addAlias(newAlias);
res.status(200).send(newAlias);
} catch (error) {
res.status(400).send({ message: String(error) });
}
};
// Update controller for PUT request to '/ontime/aliases'
// Returns ACK message
export const updateAliases = async (req: Request, res: Response) => {
@@ -39,6 +39,21 @@ export const validateAliases = [
},
];
/**
* @description Validates object for POST /ontime/aliases
*/
export const validateCreateAlias = [
body('alias').isString().trim(),
body('pathAndParams').isString().trim(),
body('enabled').isBoolean(),
(req: Request, res: Response, next: NextFunction) => {
const errors = validationResult(req);
if (!errors.isEmpty()) return res.status(422).json({ errors: errors.array() });
next();
},
];
/**
* @description Validates object for PUT /ontime/aliases
*/
+6 -3
View File
@@ -12,7 +12,6 @@ import {
getViewSettings,
patchPartialProjectFile,
poll,
postAliases,
postOSC,
postSettings,
postUserFields,
@@ -34,10 +33,10 @@ import {
getClientSecrect as getClientSecret,
updateAliases,
deleteAlias,
postAlias,
} from '../controllers/ontimeController.js';
import {
validateAliases,
validateOSC,
validatePatchProjectFile,
validateSettings,
@@ -51,6 +50,7 @@ import {
validateWorksheet,
validateSheetOptions,
validateUpdateAlises,
validateCreateAlias,
} from '../controllers/ontimeController.validate.js';
import { projectSanitiser } from '../controllers/projectController.validate.js';
import { sanitizeProjectFilename } from '../utils/sanitizeProjectFilename.js';
@@ -87,8 +87,11 @@ router.post('/views', viewValidator, postViewSettings);
// create route between controller and '/ontime/aliases' endpoint
router.get('/aliases', getAliases);
// // create route between controller and '/ontime/aliases' endpoint
// router.post('/aliases', validateAliases, postAliases);
// create route between controller and '/ontime/aliases' endpoint
router.post('/aliases', validateAliases, postAliases);
router.post('/aliases', validateCreateAlias, postAlias);
// create route between controller and /ontime/aliases' endpoint
router.put('/aliases', validateUpdateAlises, updateAliases);