Socket
Socket
Sign inDemoInstall

@foal/core

Package Overview
Dependencies
Maintainers
1
Versions
98
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@foal/core - npm Package Compare versions

Comparing version 0.6.0-alpha.4 to 0.6.0-beta.0

lib/common/errors/permission-denied.d.ts

20

lib/common/controllers/rest.controller.d.ts

@@ -1,18 +0,18 @@

import { Class, Context, HttpResponseCreated, HttpResponseMethodNotAllowed, HttpResponseNotFound, HttpResponseNotImplemented, HttpResponseOK, ServiceManager } from '../../core';
import { ISerializer } from '../services';
import { Class, Context, HttpResponseBadRequest, HttpResponseCreated, HttpResponseForbidden, HttpResponseMethodNotAllowed, HttpResponseNotFound, HttpResponseNotImplemented, HttpResponseOK, ServiceManager } from '../../core';
import { CollectionParams, IResourceCollection } from '../services';
export declare abstract class RestController {
private services;
abstract serializerClass: Class<Partial<ISerializer>>;
abstract collectionClass: Class<Partial<IResourceCollection>>;
constructor(services: ServiceManager);
getQuery(ctx: Context): object;
extendParams(ctx: Context, params: CollectionParams): CollectionParams;
delete(): HttpResponseMethodNotAllowed;
deleteById(ctx: Context): Promise<HttpResponseOK | HttpResponseNotFound | HttpResponseNotImplemented>;
get(ctx: Context): Promise<HttpResponseOK | HttpResponseNotImplemented>;
getById(ctx: Context): Promise<HttpResponseOK | HttpResponseNotFound | HttpResponseNotImplemented>;
deleteById(ctx: Context): Promise<HttpResponseOK | HttpResponseBadRequest | HttpResponseForbidden | HttpResponseNotFound | HttpResponseNotImplemented>;
get(ctx: Context): Promise<HttpResponseOK | HttpResponseBadRequest | HttpResponseForbidden | HttpResponseNotImplemented>;
getById(ctx: Context): Promise<HttpResponseOK | HttpResponseBadRequest | HttpResponseForbidden | HttpResponseNotFound | HttpResponseNotImplemented>;
patch(): HttpResponseMethodNotAllowed;
patchById(ctx: Context): Promise<HttpResponseOK | HttpResponseNotFound | HttpResponseNotImplemented>;
post(ctx: Context): Promise<HttpResponseCreated | HttpResponseNotImplemented>;
patchById(ctx: Context): Promise<HttpResponseOK | HttpResponseBadRequest | HttpResponseForbidden | HttpResponseNotFound | HttpResponseNotImplemented>;
post(ctx: Context): Promise<HttpResponseCreated | HttpResponseBadRequest | HttpResponseForbidden | HttpResponseNotImplemented>;
postById(): HttpResponseMethodNotAllowed;
put(): HttpResponseMethodNotAllowed;
putById(ctx: Context): Promise<HttpResponseOK | HttpResponseNotFound | HttpResponseNotImplemented>;
putById(ctx: Context): Promise<HttpResponseOK | HttpResponseBadRequest | HttpResponseForbidden | HttpResponseNotFound | HttpResponseNotImplemented>;
}

@@ -18,14 +18,4 @@ "use strict";

}
// schema = {
// id: { type: 'number' }
// };
// requiredFields = {
// post: [], // do not include the id in post.
// put: [ 'id' ]
// };
// hooks = {
// post: [ LoginRequired(), /*AssignUserId()*/ ]
// };
getQuery(ctx) {
return {};
extendParams(ctx, params) {
return params;
}

@@ -36,14 +26,19 @@ delete() {

async deleteById(ctx) {
const serializer = this.services.get(this.serializerClass);
if (!serializer.removeOne) {
const collection = this.services.get(this.collectionClass);
if (!collection.deleteById) {
return new core_1.HttpResponseNotImplemented();
}
const query = Object.assign({}, this.getQuery(ctx), { id: ctx.request.params.id });
try {
return new core_1.HttpResponseOK(await serializer.removeOne(query));
return new core_1.HttpResponseOK(await collection.deleteById(ctx.user, ctx.request.params.id, {}));
}
catch (error) {
if (errors_1.isObjectDoesNotExist(error)) {
return new core_1.HttpResponseNotFound();
return new core_1.HttpResponseNotFound(error.content);
}
else if (errors_1.isValidationError(error)) {
return new core_1.HttpResponseBadRequest(error.content);
}
else if (errors_1.isPermissionDenied(error)) {
return new core_1.HttpResponseForbidden(error.content);
}
throw error;

@@ -55,22 +50,38 @@ }

// hooks
const serializer = this.services.get(this.serializerClass);
if (!serializer.findMany) {
const collection = this.services.get(this.collectionClass);
if (!collection.find) {
return new core_1.HttpResponseNotImplemented();
}
const query = this.getQuery(ctx);
return new core_1.HttpResponseOK(await serializer.findMany(query));
const params = this.extendParams(ctx, {});
try {
return new core_1.HttpResponseOK(await collection.find(ctx.user, params));
}
catch (error) {
if (errors_1.isValidationError(error)) {
return new core_1.HttpResponseBadRequest(error.content);
}
else if (errors_1.isPermissionDenied(error)) {
return new core_1.HttpResponseForbidden(error.content);
}
throw error;
}
}
async getById(ctx) {
const serializer = this.services.get(this.serializerClass);
if (!serializer.findOne) {
const collection = this.services.get(this.collectionClass);
if (!collection.findById) {
return new core_1.HttpResponseNotImplemented();
}
const query = Object.assign({}, this.getQuery(ctx), { id: ctx.request.params.id });
try {
return new core_1.HttpResponseOK(await serializer.findOne(query));
return new core_1.HttpResponseOK(await collection.findById(ctx.user, ctx.request.params.id, {}));
}
catch (error) {
if (errors_1.isObjectDoesNotExist(error)) {
return new core_1.HttpResponseNotFound();
return new core_1.HttpResponseNotFound(error.content);
}
else if (errors_1.isValidationError(error)) {
return new core_1.HttpResponseBadRequest(error.content);
}
else if (errors_1.isPermissionDenied(error)) {
return new core_1.HttpResponseForbidden(error.content);
}
throw error;

@@ -83,14 +94,19 @@ }

async patchById(ctx) {
const serializer = this.services.get(this.serializerClass);
if (!serializer.updateOne) {
const collection = this.services.get(this.collectionClass);
if (!collection.modifyById) {
return new core_1.HttpResponseNotImplemented();
}
const query = Object.assign({}, this.getQuery(ctx), { id: ctx.request.params.id });
try {
return new core_1.HttpResponseOK(await serializer.updateOne(query, ctx.request.body));
return new core_1.HttpResponseOK(await collection.modifyById(ctx.user, ctx.request.params.id, ctx.request.body, {}));
}
catch (error) {
if (errors_1.isObjectDoesNotExist(error)) {
return new core_1.HttpResponseNotFound();
return new core_1.HttpResponseNotFound(error.content);
}
else if (errors_1.isValidationError(error)) {
return new core_1.HttpResponseBadRequest(error.content);
}
else if (errors_1.isPermissionDenied(error)) {
return new core_1.HttpResponseForbidden(error.content);
}
throw error;

@@ -100,7 +116,18 @@ }

async post(ctx) {
const serializer = this.services.get(this.serializerClass);
if (!serializer.createOne) {
const collection = this.services.get(this.collectionClass);
if (!collection.create) {
return new core_1.HttpResponseNotImplemented();
}
return new core_1.HttpResponseCreated(await serializer.createOne(ctx.request.body));
try {
return new core_1.HttpResponseCreated(await collection.create(ctx.user, ctx.request.body, {}));
}
catch (error) {
if (errors_1.isValidationError(error)) {
return new core_1.HttpResponseBadRequest(error.content);
}
else if (errors_1.isPermissionDenied(error)) {
return new core_1.HttpResponseForbidden(error.content);
}
throw error;
}
}

@@ -114,14 +141,19 @@ postById() {

async putById(ctx) {
const serializer = this.services.get(this.serializerClass);
if (!serializer.updateOne) {
const collection = this.services.get(this.collectionClass);
if (!collection.updateById) {
return new core_1.HttpResponseNotImplemented();
}
const query = Object.assign({}, this.getQuery(ctx), { id: ctx.request.params.id });
try {
return new core_1.HttpResponseOK(await serializer.updateOne(query, ctx.request.body));
return new core_1.HttpResponseOK(await collection.updateById(ctx.user, ctx.request.params.id, ctx.request.body, {}));
}
catch (error) {
if (errors_1.isObjectDoesNotExist(error)) {
return new core_1.HttpResponseNotFound();
return new core_1.HttpResponseNotFound(error.content);
}
else if (errors_1.isValidationError(error)) {
return new core_1.HttpResponseBadRequest(error.content);
}
else if (errors_1.isPermissionDenied(error)) {
return new core_1.HttpResponseForbidden(error.content);
}
throw error;

@@ -128,0 +160,0 @@ }

export { ObjectDoesNotExist, isObjectDoesNotExist } from './object-does-not-exist';
export { PermissionDenied, isPermissionDenied } from './permission-denied';
export { ValidationError, isValidationError } from './validation-error';

@@ -6,2 +6,5 @@ "use strict";

exports.isObjectDoesNotExist = object_does_not_exist_1.isObjectDoesNotExist;
var permission_denied_1 = require("./permission-denied");
exports.PermissionDenied = permission_denied_1.PermissionDenied;
exports.isPermissionDenied = permission_denied_1.isPermissionDenied;
var validation_error_1 = require("./validation-error");

@@ -8,0 +11,0 @@ exports.ValidationError = validation_error_1.ValidationError;

export declare class ObjectDoesNotExist extends Error {
content?: any;
readonly isObjectDoesNotExist: boolean;
constructor();
constructor(content?: any);
}
export declare function isObjectDoesNotExist(err: object): boolean;
export declare function isObjectDoesNotExist(err: object): err is ObjectDoesNotExist;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class ObjectDoesNotExist extends Error {
constructor() {
constructor(content) {
super();
this.content = content;
this.isObjectDoesNotExist = true;

@@ -7,0 +8,0 @@ Object.setPrototypeOf(this, ObjectDoesNotExist.prototype);

@@ -6,2 +6,2 @@ export declare class ValidationError extends Error {

}
export declare function isValidationError(err: object): boolean;
export declare function isValidationError(err: object): err is ValidationError;

@@ -1,2 +0,2 @@

export { ISerializer } from './serializer.interface';
export { EntitySerializer } from './entity-serializer.service';
export { IResourceCollection, CollectionParams } from './resource-collection.interface';
export { EntityResourceCollection, middleware, Middleware } from './entity-resource-collection.service';
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var entity_serializer_service_1 = require("./entity-serializer.service");
exports.EntitySerializer = entity_serializer_service_1.EntitySerializer;
var entity_resource_collection_service_1 = require("./entity-resource-collection.service");
exports.EntityResourceCollection = entity_resource_collection_service_1.EntityResourceCollection;
exports.middleware = entity_resource_collection_service_1.middleware;
//# sourceMappingURL=index.js.map
{
"name": "@foal/core",
"version": "0.6.0-alpha.4",
"version": "0.6.0-beta.0",
"description": "A high-level Node.JS framework to quickly build web apps in TypeScript.",

@@ -5,0 +5,0 @@ "main": "./lib/index.js",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc