refactoring on back end

This commit is contained in:
Mikayla Dobson
2022-12-17 13:30:55 -06:00
parent be375aad8f
commit 9a43f58ee3
15 changed files with 117 additions and 90 deletions

View File

@@ -1,46 +1,50 @@
import createError from "http-errors";
import { ICollection } from "../schemas";
import { Collection } from "../models/collection";
import { StatusCode } from "../util/types";
import ControllerResponse from "../util/ControllerResponse";
const CollectionInstance = new Collection();
export default class CollectionCtl {
async getOne(id: number | string) {
const result = await CollectionInstance.getOne(id);
if (!result) throw createError('404', 'Collection not found');
return result;
const ok: boolean = result !== null;
const code: StatusCode = ok ? StatusCode.OK : StatusCode.NotFound;
const data: string | ICollection = result || "No collection found with this ID";
return new ControllerResponse(code, data);
}
async getAll() {
const result = await CollectionInstance.getAll();
if (!result) throw createError('404', 'No collections found');
return result;
const ok = result !== null;
const code = ok ? StatusCode.OK : StatusCode.NotFound;
const data = result || "No collections found"
return new ControllerResponse(code, data);
}
async getUserDefault(id: number | string) {
const result = await CollectionInstance.getUserDefault(id);
if (!result) throw createError('404', "No default collection found. Contact an admin, this isn't supposed to happen");
return result;
const code = (result !== null) ? StatusCode.OK : StatusCode.NotFound;
const data = result || "No default collection found"
return new ControllerResponse(code, data);
}
async post(data: ICollection) {
const result = await CollectionInstance.post(data);
if (!result) throw createError('400', 'Bad request');
return result;
async post(body: ICollection) {
const result = await CollectionInstance.post(body);
const code = (result !== null) ? StatusCode.NewContent : StatusCode.BadRequest;
const data = result || "Something went wrong"
return new ControllerResponse(code, data);
}
async getSubscriptions(userid: number | string) {
const result = await CollectionInstance.getSubscriptions(userid);
if (!result) throw createError('404', 'No subscriptions found');
return result;
const code = (result !== null) ? StatusCode.OK : StatusCode.NoContent;
return new ControllerResponse(code, (result || "No subscriptions found"));
}
async postSubscription(collectionid: number | string, userid: number | string) {
const { ok, code, data } = await CollectionInstance.postSubscription(collectionid, userid);
if (ok) {
return data;
} else {
throw createError(code, data as string);
}
const { code, data } = await CollectionInstance.postSubscription(collectionid, userid);
return new ControllerResponse(code, data);
}
}