Skip to content

Commit

Permalink
Criado servico de conexão sftp
Browse files Browse the repository at this point in the history
  • Loading branch information
williamfl2007 committed Mar 5, 2024
1 parent 39769de commit a4f242b
Show file tree
Hide file tree
Showing 10 changed files with 19,110 additions and 18,788 deletions.
2 changes: 1 addition & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ module.exports = {
plugins: ['@typescript-eslint/eslint-plugin'],
extends: [
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended',
// 'plugin:prettier/recommended',
],
root: true,
env: {
Expand Down
20,273 changes: 10,278 additions & 9,995 deletions package-lock.json

Large diffs are not rendered by default.

19 changes: 10 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,19 +30,19 @@
"prepare": "is-ci || husky install"
},
"dependencies": {
"@aws-sdk/client-s3": "3.350.0",
"@aws-sdk/client-s3": "^3.525.0",
"@google-cloud/bigquery": "^7.3.0",
"@nestjs-modules/mailer": "1.8.1",
"@nestjs-modules/mailer": "^1.11.2",
"@nestjs/axios": "^3.0.0",
"@nestjs/common": "9.4.2",
"@nestjs/config": "2.3.2",
"@nestjs/core": "9.4.2",
"@nestjs/core": "^7.5.5",
"@nestjs/jwt": "10.0.3",
"@nestjs/passport": "9.0.3",
"@nestjs/platform-express": "9.4.2",
"@nestjs/schedule": "^3.0.4",
"@nestjs/swagger": "6.3.0",
"@nestjs/typeorm": "9.0.1",
"@nestjs/schedule": "^2.2.3",
"@nestjs/swagger": "^5.0.8",
"@nestjs/typeorm": "^7.1.5",
"@types/multer-s3": "^3.0.0",
"apple-signin-auth": "1.7.5",
"aws-sdk": "^2.1470.0",
Expand All @@ -59,8 +59,9 @@
"handlebars": "4.7.7",
"multer": "1.4.4",
"multer-s3": "3.0.1",
"nest-sftp": "^3.0.0",
"nestjs-i18n": "10.2.6",
"nodemailer": "6.9.3",
"nodemailer": "^6.9.11",
"passport": "0.6.0",
"passport-anonymous": "1.0.1",
"passport-jwt": "4.0.1",
Expand All @@ -70,7 +71,7 @@
"rxjs": "7.8.1",
"source-map-support": "0.5.21",
"swagger-ui-express": "4.6.3",
"twitter": "1.7.1",
"twitter": "^1.1.0",
"typeorm": "0.3.16",
"typeorm-aurora-data-api-driver": "^2.4.4",
"validations-br": "^1.3.0",
Expand All @@ -79,7 +80,7 @@
"devDependencies": {
"@nestjs/cli": "9.5.0",
"@nestjs/schematics": "9.2.0",
"@nestjs/testing": "9.4.2",
"@nestjs/testing": "^7.5.5",
"@types/bcryptjs": "2.4.2",
"@types/express": "4.17.17",
"@types/facebook-js-sdk": "3.3.6",
Expand Down
11 changes: 11 additions & 0 deletions src/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,19 @@ import { CronJobsModule } from './cron-jobs/cron-jobs.module';
import { BigqueryModule } from './bigquery/bigquery.module';
import { TestModule } from './test/test.module';
import { CnabModule } from './cnab/cnab.module';
import { SftpModule } from 'nest-sftp';

@Module({
imports: [
SftpModule.forRoot(
{
host: '34.123.217.7',
port: 23,
username: 'cct_devs',
password: 'EzKWSiqqchX3xdF'
},
false,
),
ConfigModule.forRoot({
isGlobal: true,
load: [
Expand Down Expand Up @@ -108,6 +118,7 @@ import { CnabModule } from './cnab/cnab.module';
BigqueryModule,
TestModule,
CnabModule,
SftpModule,
],
})
export class AppModule {}
1 change: 0 additions & 1 deletion src/cnab/repository/cliente-favorecido.repository.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { Injectable, Logger } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { EntityCondition } from 'src/utils/types/entity-condition.type';
import { Nullable } from 'src/utils/types/nullable.type';
import { Repository, UpdateResult } from 'typeorm';
import { SaveClienteFavorecidoDTO } from '../dto/save-cliente-favorecido.dto';
import { ClienteFavorecido } from '../entity/cliente-favorecido.entity';
Expand Down
2 changes: 1 addition & 1 deletion src/cnab/repository/transacao.repository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Injectable, Logger } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { EntityCondition } from 'src/utils/types/entity-condition.type';
import { Nullable } from 'src/utils/types/nullable.type';
import { Repository, UpdateResult } from 'typeorm';
import { Repository } from 'typeorm';
import { Transacao } from '../entity/transacao.entity';
import { TransacaoDTO } from '../dto/transacao.dto';

Expand Down
3 changes: 2 additions & 1 deletion src/cnab/service/cliente-favorecido.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { UsersService } from 'src/users/users.service';
import { ClienteFavorecido } from '../entity/cliente-favorecido.entity';
import { ClienteFavorecidoRepository } from '../repository/cliente-favorecido.repository';
import { SaveClienteFavorecidoDTO } from '../dto/save-cliente-favorecido.dto';
import { validateDTO } from 'src/utils/validation-utils';

@Injectable()
export class ClienteFavorecidoService {
Expand Down Expand Up @@ -68,4 +69,4 @@ export class ClienteFavorecidoService {
await validateDTO(SaveClienteFavorecidoDTO, saveObject);
await this.clienteFavorecidoRepository.save(saveObject);
}
}
}
24 changes: 11 additions & 13 deletions src/cnab/service/transacao.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import { PagadorService } from './pagador.service';
import { ItemTransacaoService } from './item-transacao.service';
import { ItemTransacaoDTO } from '../dto/item-transacao.dto';
import { stringToDate } from 'src/utils/date-utils';
// import { TransacaoClienteItemService } from './transacao-cliente-item.service';

@Injectable()
export class TransacaoService {
Expand All @@ -27,18 +26,18 @@ export class TransacaoService {
const ordensPagamento = await this.bigqueryOrdemPagamentoService.getCurrentWeek();

const pagador = await this.pagadorService.getOneByConta(PagadorContaEnum.JAE);
var idOrdemAux:string="";
let idOrdemAux="";

ordensPagamento.forEach(async ordemPagamento => {
var saveTransacaoDTO;
let saveTransacaoDTO;
if((ordemPagamento.id_ordem_pagamento as string)!==idOrdemAux){
var transacaoDTO = await this.ordemPagamentoToTransacao(ordemPagamento, pagador.id_pagador);
const transacaoDTO = await this.ordemPagamentoToTransacao(ordemPagamento, pagador.id_pagador);
saveTransacaoDTO = await this.transacaoRepository.save(transacaoDTO);
}
var favorecido = await this.clienteFavorecidoService.findCpfCnpj(ordemPagamento.id_operadora as string);
var itemTransacao = await this.ordemPagamentoToItemTransacao(ordemPagamento,
const favorecido = await this.clienteFavorecidoService.findCpfCnpj(ordemPagamento.id_operadora as string);
const itemTransacao = await this.ordemPagamentoToItemTransacao(ordemPagamento,
saveTransacaoDTO.id_transacao,favorecido.id_cliente_favorecido)
this.itemTransacaoService.save(itemTransacao);
void this.itemTransacaoService.save(itemTransacao);
idOrdemAux = ordemPagamento.id_ordem_pagamento as string;
});
}
Expand All @@ -49,7 +48,7 @@ export class TransacaoService {
*/
public async ordemPagamentoToTransacao(ordemPagamento: BigqueryOrdemPagamento,id_pagador: number,
): Promise<TransacaoDTO> {
var transacao = new TransacaoDTO();
const transacao = new TransacaoDTO();
transacao.dt_ordem= ordemPagamento.data_ordem as string,
transacao.dt_pagamento= ordemPagamento.data_pagamento as string,
transacao.nome_consorcio= ordemPagamento.consorcio as string,
Expand All @@ -68,23 +67,22 @@ export class TransacaoService {
transacao.vlr_total_transacao_captura= ordemPagamento.valor_total_transacao_captura as number,
transacao.indicador_ordem_valida= String(ordemPagamento.indicador_ordem_valida)
transacao.id_pagador = id_pagador;
return transacao;
return await transacao;
}

public async ordemPagamentoToItemTransacao(ordemPagamento: BigqueryOrdemPagamento,id_transacao:number,
id_cliente_favorecido: number): Promise<ItemTransacaoDTO> {
var itemTransacao = new ItemTransacaoDTO();
const itemTransacao = new ItemTransacaoDTO();
itemTransacao.dt_captura = stringToDate(ordemPagamento.data_ordem as string);
itemTransacao.dt_processamento = stringToDate(ordemPagamento.data_pagamento as string);
itemTransacao.dt_transacao = stringToDate(ordemPagamento.data_pagamento as string);
itemTransacao.id_tipo_pagamento = parseInt(ordemPagamento.id_ordem_pagamento as string);
itemTransacao.id_transacao = id_transacao;
itemTransacao.modo = "";
itemTransacao.id_transacao = id_transacao;
itemTransacao.nome_consorcio = ordemPagamento.consorcio as string;
itemTransacao.tipo_transacao = ordemPagamento.servico as string;
itemTransacao.valor_item_transacao = ordemPagamento.valor_total_transacao_liquido as number;
itemTransacao.id_cliente_favorecido = id_cliente_favorecido;
return itemTransacao;
return await itemTransacao;
}

}
Expand Down
27 changes: 27 additions & 0 deletions src/cnab/sftp/sftp.service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { Logger } from '@nestjs/common';
import { SftpClientService } from 'nest-sftp';
import { ConnectConfig } from 'ssh2';

export class SftpService {
private readonly logger: Logger;
constructor(private readonly sftpClient: SftpClientService) {
this.logger = new Logger();
}

async download(
remotePath: string,
localPath: string,
): Promise<string | NodeJS.ReadableStream | Buffer> {
return await this.sftpClient.download(remotePath, localPath) as unknown as Promise<string | NodeJS.ReadableStream | Buffer>;
}

// change connection to a different user/password prior to upload
async submit(
remotePath: string,
localPath: string,
submitConfig: ConnectConfig,
): Promise<string | NodeJS.ReadableStream | Buffer> {
await this.sftpClient.resetConnection(submitConfig);
return await this.sftpClient.upload(remotePath, localPath);
}
}
Loading

0 comments on commit a4f242b

Please sign in to comment.