1.2.5 • Published 4 years ago

robbyson-framework v1.2.5

Weekly downloads
3
License
ISC
Repository
gitlab
Last release
4 years ago

Robbyson Framework

Interfaces

  • InterfaceApiServerConfiguration
  • JSONResponse
  • InterfaceBaseMongodbRepository
  • InterfaceBaseMongodbService
  • InterfaceBaseRestRepository
  • InterfaceBaseController
  • InterfaceBaseModel
  • InterfaceBaseRepository
  • InterfaceBaseService

Classes

  • ApiServerBase (abstract)
  • BaseMongodbController
  • BaseMongodbRepository
  • BaseMongodbService
  • BaseRestRepository
  • BaseController
  • BaseModel
  • BaseService
  • Configuration
    • ConfigurationParams
  • IoC

Middlewares

  • UseSwaggerMiddleware

Decorators

  • Schema
    • Property

Factories

  • Schema Factory

InterfaceApiServerConfiguration

Used to specify the ApiServerBase constructor param with requirements to build a fast standard robbyson Api Server.

Ex.

@Singleton
export class ApiServer extends ApiServerBase {

    constructor() {
        IoCRegister.defaultRegister();

        super(/*InterfaceApiServerConfiguration*/{
            databaseAccessConfig: any;
            abstractFrameworkConfig: {
                buildDir: string;
                internalApiGatewayUrl: string;
                externalApiGatewayUrl: string;
            };
            bodyParserConfig: {
                urlEncode: {
                    limit: string;
                    extended: boolean;
                },
                json: {
                    limit: string;
                }
            };
            customMiddlewares: Array<(req: Request, res: Response, next: NextFunction => void>;
            serverContainer: any;
        });

        (...)
    }

    (...)
}

JSONResponse

Base definition to reponse output on services.

Sample Controller:

@Path('/')
export class SampleController extends BaseController {

    protected sampleService: InterfaceSampleService = IoC.getInstance().getInstanceOf('SampleService');

    constructor() {
        super([
            IoC.getInstance().getInstanceOf('SampleService')
        ]);
    }

    @GET
    @Path('/')
    public list(
        @ContextRequest req: express.Request,
        @QueryParam('$skip') $skip: number,
        @QueryParam('$limit') $limit: number,
        @QueryParam('$sort') $sort?: string,
        @QueryParam('$fields') $fields?: string,
        @QueryParam('$filter') $filter?: string,
        @HeaderParam('x-contractor-id') contractor_id?: number,
        @HeaderParam('x-robbyson-user') user?: string
    ): Promise<JSONResponse<Array<RobbysonBoilerplate>> | JSONResponse<JSONResponseErrorData>> {
        return this.sampleService.list(contractor_id, $skip, $limit, $sort, $fields, $filter);
    }

    (...)
}

InterfaceBaseMongodbRepository

Used to define a base repository with mongodb tecnology. This interface is usualy implemented at on framework but can be used to implements a new repository, anyway is not recomended use InterfaceBaseRepository.

InterfaceBaseMongodbService

Used to define a base service with mongodb tecnology. This interface is usualy implemented at on framework but can be used to implements a new service, anyway is not recomended, use InterfaceBaseService.

InterfaceBaseRestRepository

Used to define a base repository with rest tecnology. This interface is usualy implemented at on framework but can be user to implements a new rest repository, anyway is not recomended, use InterfaceBaseRepository.

InterfaceBaseController

Used to define a base controller with a full rest implementation with list, get, create, delete and update.