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

69 lines
1.9 KiB
JavaScript

import {ControllerHandler} from './controllerHandler';
import {API} from '../models/api/api';
import {Notes} from '../models/notes/notes';
export class NoteController extends ControllerHandler {
static async newNote(req, res, next) {
let errors = new API.errors(res);
let content = req.body.text || null;
let creatorid = req.user.id || undefined;
let group = req.body.parentgroup || undefined;
let order = req.body.order || undefined;
let user = req.user || undefined;
if (!creatorid || !user) {
errors.addError(403, 'Forbidden');
errors.endpoint();
next();
return;
}
if (!order) {
errors.addError(422, 'Unprocessable entity');
errors.endpoint();
next();
return;
}
let id = await Notes.genID();
let success;
if (!group) {
success = await Notes.newNote(id, content, creatorid, order);
} else {
let 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');
errors.endpoint();
next();
return;
}
success = await Notes.newGroupedNote(id, content, creatorid, order, parentgroup);
}
if (success == -1) {
errors.addError(500, 'Internal server error');
errors.endpoint();
next();
return;
}
new API.note(res, user, id, content, order, parentgroup).endpoint();
next();
}
}
// id: id,
// content: content,
// parentgroup: parentgroup,
// creatorid: creatorid,
// order: order,
// catergory: null,
// endpoint: null,
// lastupdated: new Date().getTime()
// static async newNote(id, content, creatorid, order, parentgroup) {