Skip to content

Commit

Permalink
Merge pull request #121 from hisptz/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
waltervfaustine authored Jul 20, 2020
2 parents 7b2adf3 + 8b2b92d commit 049e3fd
Show file tree
Hide file tree
Showing 21 changed files with 1,361 additions and 1,242 deletions.
2,346 changes: 1,114 additions & 1,232 deletions package-lock.json

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
"@tsed/core": "5.60.2",
"@tsed/di": "^5.54.3",
"@tsed/typeorm": "^5.60.2",
"@types/pg": "^7.14.3",
"@types/pg": "^7.14.2",
"apollo-server-express": "^2.14.2",
"axios": "^0.19.2",
"body-parser": "^1.19.0",
Expand All @@ -56,7 +56,7 @@
"extract-zip": "^2.0.0",
"handlebars": "^4.7.6",
"helmet": "^3.22.0",
"lodash": "^4.17.15",
"lodash": "^4.17.19",
"method-override": "^3.0.0",
"nestjs-typeorm-paginate": "^2.0.3",
"node-pre-gyp": "^0.14.0",
Expand Down Expand Up @@ -86,7 +86,7 @@
"@types/supertest": "2.0.9",
"commitizen": "^4.1.2",
"cz-conventional-changelog": "^3.2.0",
"graphql-tools": "^6.0.8",
"graphql-tools": "^6.0.14",
"husky": "^4.2.5",
"jest": "26.0.1",
"nodemon": "2.0.4",
Expand Down
6 changes: 5 additions & 1 deletion src/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ import { DataValueModule } from './modules/data-value/data-value.module';
import { PayloadModule } from './modules/payload/payload.module';
import { ReportModule } from './modules/report/report.module';
import { MessageModule } from './modules/message/message.module';
import { DataModule } from './modules/data/data.module';
import { DatasetModule } from './modules/dataset/dataset.module';

@Module({
imports: [
Expand All @@ -26,7 +28,9 @@ import { MessageModule } from './modules/message/message.module';
DataValueModule,
PayloadModule,
ReportModule,
MessageModule
MessageModule,
DataModule,
DatasetModule
],

controllers: [AppController],
Expand Down
2 changes: 1 addition & 1 deletion src/core/entities/core-props.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ export class EntityCoreProps extends TransactionTimestamp {
* 2. You can generat UUID by prepending a context specific keyword i.e uuid('DIMMediator', 20)
* Example of UUID::: DIMMediator_8aydSxYBrrP
*/
this.uid = uuid('', 11);
this.uid = this.uid || uuid('', 11);
}
}
27 changes: 23 additions & 4 deletions src/core/helpers/get-query-generator.helper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
*
*/
import * as _ from 'lodash';
import { QueryOption } from '../models/query-option.model';
/**
*
* @param DXs
Expand All @@ -27,6 +28,7 @@ export function findOptionQueryGenerator(
const sourceSystemId = from ? from : '';
const destinationSystemId = to ? to : '';
const queryOptions = [];

/**
*
*/
Expand Down Expand Up @@ -64,8 +66,25 @@ export function findOptionQueryGenerator(
}
}
}
/**
*
*/
return queryOptions;
return this.queryOptimizer(queryOptions);
}

export function queryOptimizer(queryOptions: QueryOption[]) {
const statusSuccess: QueryOption[] = _.map(
queryOptions,
(queryOption: QueryOption) => {
return queryOption.status.toLowerCase() === 'all'
? { ..._.omit(queryOption, ['status']), status: 'success' }
: queryOption;
},
);
const statusFailure: QueryOption[] = _.map(
queryOptions,
(queryOption: QueryOption) => {
return queryOption.status.toLowerCase() === 'all'
? { ..._.omit(queryOption, ['status']), status: 'failure' }
: queryOption;
},
);
return _.union(statusSuccess, statusFailure);
}
9 changes: 9 additions & 0 deletions src/core/models/query-option.model.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
export interface QueryOption {
status: string;
destinationDataSetId: string;
sourceDataElementId: string;
sourceExchangePeriod: string;
sourceExchangeDate: string;
sourceSystemId: string;
destinationSystemId: string;
}
18 changes: 18 additions & 0 deletions src/modules/data/controllers/data/data.controller.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { Test, TestingModule } from '@nestjs/testing';
import { DataController } from './data.controller';

describe('Data Controller', () => {
let controller: DataController;

beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
controllers: [DataController],
}).compile();

controller = module.get<DataController>(DataController);
});

it('should be defined', () => {
expect(controller).toBeDefined();
});
});
11 changes: 11 additions & 0 deletions src/modules/data/controllers/data/data.controller.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { Controller } from '@nestjs/common';
import { BaseController } from 'src/core/controllers/base.contoller';
import { Data } from '../../entities/data.entity';
import { DataService } from '../../services/data/data.service';

@Controller('api/' + Data.APIEndPoint)
export class DataController extends BaseController<Data> {
constructor(private dataService: DataService) {
super(dataService, Data)
}
}
16 changes: 16 additions & 0 deletions src/modules/data/data.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { Module } from '@nestjs/common';
import { PassportModule } from '@nestjs/passport';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Data } from './entities/data.entity';
import { DataController } from './controllers/data/data.controller';
import { DataService } from './services/data/data.service';

@Module({
imports: [
PassportModule.register({ defaultStrategy: 'basic', session: true }),
TypeOrmModule.forFeature([Data]),
],
controllers: [DataController],
providers: [DataService],
})
export class DataModule { }
21 changes: 21 additions & 0 deletions src/modules/data/entities/data.entity.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { Entity, Column } from 'typeorm';
import { EntityCoreProps } from 'src/core/entities/core-props';

@Entity('data', { schema: 'public' })
export class Data extends EntityCoreProps {
static APIEndPoint = 'datas';

@Column({
type: 'varchar',
name: 'name',
nullable: false,
})
name: string;

@Column({
type: 'varchar',
name: 'type',
nullable: false,
})
type: string;
}
7 changes: 7 additions & 0 deletions src/modules/data/entities/data.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { Data } from './data.entity';

describe('Data', () => {
it('should be defined', () => {
expect(new Data()).toBeDefined();
});
});
18 changes: 18 additions & 0 deletions src/modules/data/services/data/data.service.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { Test, TestingModule } from '@nestjs/testing';
import { DataService } from './data.service';

describe('DataService', () => {
let service: DataService;

beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [DataService],
}).compile();

service = module.get<DataService>(DataService);
});

it('should be defined', () => {
expect(service).toBeDefined();
});
});
15 changes: 15 additions & 0 deletions src/modules/data/services/data/data.service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { Injectable } from '@nestjs/common';
import { BaseService } from 'src/core/services/base.service';
import { Data } from '../../entities/data.entity';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';

@Injectable()
export class DataService extends BaseService<Data> {
constructor(
@InjectRepository(Data)
private readonly dataRepository: Repository<Data>,
) {
super(dataRepository, Data);
}
}
18 changes: 18 additions & 0 deletions src/modules/dataset/controllers/dataset/dataset.controller.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { Test, TestingModule } from '@nestjs/testing';
import { DatasetController } from './dataset.controller';

describe('Dataset Controller', () => {
let controller: DatasetController;

beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
controllers: [DatasetController],
}).compile();

controller = module.get<DatasetController>(DatasetController);
});

it('should be defined', () => {
expect(controller).toBeDefined();
});
});
11 changes: 11 additions & 0 deletions src/modules/dataset/controllers/dataset/dataset.controller.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { Controller } from '@nestjs/common';
import { BaseController } from 'src/core/controllers/base.contoller';
import { Dataset } from '../../entities/dataset.entity';
import { DatasetService } from '../../services/dataset/dataset.service';

@Controller('api/' + Dataset.APIEndPoint)
export class DatasetController extends BaseController<Dataset> {
constructor(private dataSetService: DatasetService) {
super(dataSetService, Dataset);
}
}
16 changes: 16 additions & 0 deletions src/modules/dataset/dataset.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { Module } from '@nestjs/common';
import { PassportModule } from '@nestjs/passport';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Dataset } from './entities/dataset.entity';
import { DatasetController } from './controllers/dataset/dataset.controller';
import { DatasetService } from './services/dataset/dataset.service';

@Module({
imports: [
PassportModule.register({ defaultStrategy: 'basic', session: true }),
TypeOrmModule.forFeature([Dataset]),
],
controllers: [DatasetController],
providers: [DatasetService],
})
export class DatasetModule { }
14 changes: 14 additions & 0 deletions src/modules/dataset/entities/dataset.entity.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { EntityCoreProps } from 'src/core/entities/core-props';
import { Column, Entity } from 'typeorm';

@Entity('datasets', { schema: 'public' })
export class Dataset extends EntityCoreProps {
static APIEndPoint = 'dataSets';

@Column({
type: 'varchar',
name: 'name',
nullable: false,
})
name: string;
}
7 changes: 7 additions & 0 deletions src/modules/dataset/entities/dataset.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { Dataset } from './dataset.entity';

describe('Dataset', () => {
it('should be defined', () => {
expect(new Dataset()).toBeDefined();
});
});
18 changes: 18 additions & 0 deletions src/modules/dataset/services/dataset/dataset.service.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { Test, TestingModule } from '@nestjs/testing';
import { DatasetService } from './dataset.service';

describe('DatasetService', () => {
let service: DatasetService;

beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [DatasetService],
}).compile();

service = module.get<DatasetService>(DatasetService);
});

it('should be defined', () => {
expect(service).toBeDefined();
});
});
15 changes: 15 additions & 0 deletions src/modules/dataset/services/dataset/dataset.service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { Injectable } from '@nestjs/common';
import { BaseService } from 'src/core/services/base.service';
import { Dataset } from '../../entities/dataset.entity';
import { Repository } from 'typeorm';
import { InjectRepository } from '@nestjs/typeorm';

@Injectable()
export class DatasetService extends BaseService<Dataset> {
constructor(
@InjectRepository(Dataset)
private readonly dataSetRepository: Repository<Dataset>,
) {
super(dataSetRepository, Dataset);
}
}
2 changes: 1 addition & 1 deletion src/modules/report/entities/report.entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ export class Report extends EntityCoreProps {
name: 'sourceorgunitname',
nullable: true,
})
sourceorgunitname: string;
sourceOrgUnitName: string;

@Column({
type: 'varchar',
Expand Down

0 comments on commit 049e3fd

Please sign in to comment.