From 0773cf8fdcbd3b8e5f876825dd0f14e71c74c807 Mon Sep 17 00:00:00 2001 From: Noam Honig Date: Fri, 16 Sep 2022 09:03:17 +0300 Subject: [PATCH 1/2] working without decorators --- package-lock.json | 14 +++++++------- package.json | 2 +- src/shared/Task.ts | 30 +++++++++++++++--------------- src/shared/TasksController.ts | 10 +++++++--- 4 files changed, 30 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8a68a34..399e7f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "pg": "^8.8.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "remult": "^0.16.0" + "remult": "^0.16.3-exp.1" }, "devDependencies": { "@types/compression": "^1.7.2", @@ -2800,9 +2800,9 @@ "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" }, "node_modules/remult": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/remult/-/remult-0.16.1.tgz", - "integrity": "sha512-aUMTvyfdr/xgFPAIgBXHJc6SCReqMFBfG93KXjWvT6yBSDHRXM+Xu1s6coeMsCM8gildjER7f0i2+dIou8XnyA==", + "version": "0.16.3-exp.1", + "resolved": "https://registry.npmjs.org/remult/-/remult-0.16.3-exp.1.tgz", + "integrity": "sha512-PqQo6Gys4jqjP7nTTlMElzPrdrW6/XYppW/8yhqsYCIO/0fC1uO8EUEibEfBSBNEjgoEfdVcIEceiF403fqw4g==", "dependencies": { "reflect-metadata": "^0.1.13", "tslib": "^2.3.1", @@ -5479,9 +5479,9 @@ "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" }, "remult": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/remult/-/remult-0.16.1.tgz", - "integrity": "sha512-aUMTvyfdr/xgFPAIgBXHJc6SCReqMFBfG93KXjWvT6yBSDHRXM+Xu1s6coeMsCM8gildjER7f0i2+dIou8XnyA==", + "version": "0.16.3-exp.1", + "resolved": "https://registry.npmjs.org/remult/-/remult-0.16.3-exp.1.tgz", + "integrity": "sha512-PqQo6Gys4jqjP7nTTlMElzPrdrW6/XYppW/8yhqsYCIO/0fC1uO8EUEibEfBSBNEjgoEfdVcIEceiF403fqw4g==", "requires": { "reflect-metadata": "^0.1.13", "tslib": "^2.3.1", diff --git a/package.json b/package.json index c28fdf3..e47e7b9 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "pg": "^8.8.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "remult": "^0.16.0" + "remult": "^0.16.3-exp.1" }, "devDependencies": { "@types/compression": "^1.7.2", diff --git a/src/shared/Task.ts b/src/shared/Task.ts index 3c7c3bb..0f104d5 100644 --- a/src/shared/Task.ts +++ b/src/shared/Task.ts @@ -1,22 +1,22 @@ -import { Allow, Entity, Fields, Validators } from "remult"; +import { Allow, describeClass, Entity, Fields, Validators } from "remult"; import { Roles } from "./Roles"; -@Entity("tasks", { - allowApiRead: Allow.authenticated, - allowApiUpdate: Allow.authenticated, - allowApiInsert: Roles.admin, - allowApiDelete: Roles.admin -}) export class Task { - @Fields.uuid() id!: string; - - @Fields.string({ - validate: Validators.required, - allowApiUpdate: Roles.admin - }) title = ''; - - @Fields.boolean() completed = false; } + +describeClass(Task, Entity("tasks", { + allowApiRead: Allow.authenticated, + allowApiUpdate: Allow.authenticated, + allowApiInsert: Roles.admin, + allowApiDelete: Roles.admin +}), { + id: Fields.uuid(), + title: Fields.string({ + validate: Validators.required, + allowApiUpdate: Roles.admin + }), + completed: Fields.boolean() +}) \ No newline at end of file diff --git a/src/shared/TasksController.ts b/src/shared/TasksController.ts index 99cbd5a..c5a2300 100644 --- a/src/shared/TasksController.ts +++ b/src/shared/TasksController.ts @@ -1,14 +1,18 @@ -import { Allow, BackendMethod, remult } from "remult"; +import { Allow, BackendMethod, describeClass, remult } from "remult"; import { Task } from "./Task"; import { Roles } from "./Roles"; export class TasksController { - @BackendMethod({ allowed: Roles.admin }) + static async setAll(completed: boolean) { const taskRepo = remult.repo(Task); for (const task of await taskRepo.find()) { - await taskRepo.save({ ...task, completed }); + await taskRepo.save({ ...task, completed }); } } } + +describeClass(TasksController, undefined, undefined, { + setAll: BackendMethod({ allowed: Roles.admin }) +}) \ No newline at end of file From 36dae6308e1f32e2f6316ad4ef438f22fc05a272 Mon Sep 17 00:00:00 2001 From: Noam Honig Date: Fri, 16 Sep 2022 09:04:31 +0300 Subject: [PATCH 2/2] adjusted --- src/shared/TasksController.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/shared/TasksController.ts b/src/shared/TasksController.ts index c5a2300..7ff2a08 100644 --- a/src/shared/TasksController.ts +++ b/src/shared/TasksController.ts @@ -3,12 +3,11 @@ import { Task } from "./Task"; import { Roles } from "./Roles"; export class TasksController { - static async setAll(completed: boolean) { const taskRepo = remult.repo(Task); for (const task of await taskRepo.find()) { - await taskRepo.save({ ...task, completed }); + await taskRepo.save({ ...task, completed }); } } }