nestjs-report-lib
v1.1.4
Published
A NestJS library for generating and managing reports in your applications.
Downloads
22
Readme
nestjs-report-lib
A NestJS library for generating and managing reports in your applications.
Features
- Easy integration with NestJS projects
- Flexible report generation
- Extensible architecture
Installation and Setup
npm install nestjs-report-libCREATE TABLE IF NOT EXISTS report
(
id serial NOT NULL,
name character varying(255) COLLATE pg_catalog."default",
label character varying(255) COLLATE pg_catalog."default",
end_point character varying(255) COLLATE pg_catalog."default",
query text COLLATE pg_catalog."default",
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
deleted_at timestamp without time zone,
created_by character varying(255) COLLATE pg_catalog."default",
updated_by character varying(255) COLLATE pg_catalog."default",
deleted_by character varying(255) COLLATE pg_catalog."default",
order_no integer,
CONSTRAINT report_pkey PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS report_parameter
(
id serial NOT NULL DEFAULT,
report_id integer,
parameter_name character varying(255) COLLATE pg_catalog."default",
label character varying(255) COLLATE pg_catalog."default",
data_type character varying(100) COLLATE pg_catalog."default",
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
deleted_at timestamp without time zone,
created_by character varying(255) COLLATE pg_catalog."default",
updated_by character varying(255) COLLATE pg_catalog."default",
deleted_by character varying(255) COLLATE pg_catalog."default",
query_parameter character varying(255) COLLATE pg_catalog."default",
input_field_type character varying(100) COLLATE pg_catalog."default",
option_type character varying(100) COLLATE pg_catalog."default",
option jsonb,
order_no integer,
CONSTRAINT report_parameter_pkey PRIMARY KEY (id),
CONSTRAINT report_parameter_report_id_fkey FOREIGN KEY (report_id)
REFERENCES public.report (id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS public.report_result_mapping
(
id serial NOT NULL,
report_id integer,
query_parameter_name character varying(255) COLLATE pg_catalog."default",
variable_name character varying(255) COLLATE pg_catalog."default",
label character varying(255) COLLATE pg_catalog."default",
data_type character varying(100) COLLATE pg_catalog."default",
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
deleted_at timestamp without time zone,
created_by character varying(255) COLLATE pg_catalog."default",
updated_by character varying(255) COLLATE pg_catalog."default",
deleted_by character varying(255) COLLATE pg_catalog."default",
alignment character varying(200) COLLATE pg_catalog."default",
CONSTRAINT report_result_mapping_pkey PRIMARY KEY (id),
CONSTRAINT report_result_mapping_report_id_fkey FOREIGN KEY (report_id)
REFERENCES public.report (id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE CASCADE
);Usage
Import the Module
For Default Entities Defination:
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { ReportModule, entities } from 'nestjs-report-lib';
import { TypeOrmModule } from '@nestjs/typeorm';
@Module({
imports: [
ReportModule.register(),,
TypeOrmModule.forRoot({
type: 'Type',
host: 'HOST',
port: 'PORT',
username: 'YOUR_USERNAME',
password: 'YOUR_PASSWORD',
database: 'YOUR_DATABASE_NAME',
entities: entities,
}),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}For Custom Entities Defination:
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { ReportModule } from 'nestjs-report-lib';
import { TypeOrmModule } from '@nestjs/typeorm';
import { entities, Report, ReportParameter } from './entities';
@Module({
imports: [
ReportModule.register([Report, ReportParameter]),,
TypeOrmModule.forRoot({
type: 'Type',
host: 'HOST',
port: 'PORT',
username: 'YOUR_USERNAME',
password: 'YOUR_PASSWORD',
database: 'YOUR_DATABASE_NAME',
entities: entities,
}),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}Configuration
API
Exposed APIs List:
| API | Type | Payload | |---------------------|------|-------------------------| | report/reports_list | GET | | | report/:id | GET | | | generate/:report | POST | {Parameter_1 : Value_1} | | download/:report | POST | {Parameter_1 : Value_1} |
