Files
note-service-server/src/controllers/noteController.js

64 lines
1.8 KiB
JavaScript

import {ControllerHandler} from './controllerHandler';
import {API} from './api/api';
import {Notes} from '../models/notes/notes';
import {Logger} from '../models/logger'
export class NoteController extends ControllerHandler {
static async newNote(req, res, next) {
const errors = new API.errors(res);
const content = req.body.text || null;
const group = req.body.parentgroup || undefined;
let order = req.body.order || undefined;
const user = req.user || undefined;
if (!user) {
errors.addError(403, 'Forbidden');
next(errors);
return;
}
if (!order) {
errors.addError(422, 'Unprocessable entity');
next(errors);
return;
}
const id = await Notes.genID();
let success;
if (!group) {
success = await Notes.newNote(id, content, req.user, order);
} else {
const doesExist = await Notes.doesGroupExist(user.id, parentgroup);
if (!doesExist) {
errors.addError(422, 'Unprocessable entity', 'You are trying to create a note for a group that does not exist');
next(errors);
return;
}
success = await Notes.newGroupedNote(id, content, req.user, order, parentgroup);
}
if (success == -1) {
errors.addError(500, 'Internal server error');
next(errors);
return;
}
new API.note(res, user, id, content, order, parentgroup).endpoint();
next();
}
}
// id: id,
// content: content,
// parentgroup: parentgroup,
// req.user: req.user,
// order: order,
// catergory: null,
// endpoint: null,
// lastupdated: new Date().getTime()
// static async newNote(id, content, req.user, order, parentgroup) {