Skip to content

Commit

Permalink
feat(open): add open api support
Browse files Browse the repository at this point in the history
  • Loading branch information
etienne-bechara committed Aug 12, 2024
1 parent 2c9e645 commit d99145b
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 42 deletions.
82 changes: 41 additions & 41 deletions source/cnpja/cnpja.dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,26 @@ export interface ErrorServiceUnavailableDto {
message: string;
}

/** SuframaStatusDto */
export interface SuframaStatusDto {
/**
* Código da situação cadastral:
* 1\. Ativa.
* 2\. Inativa.
* 3\. Bloqueada.
* 4\. Cancelada.
* 5\. Cancelada Ag. Rec.
* @format integer
* @example 1
*/
id: number;
/**
* Descrição da situação cadastral.
* @example "Ativa"
*/
text: string;
}

/** NatureDto */
export interface NatureDto {
/**
Expand Down Expand Up @@ -317,26 +337,6 @@ export interface EmailDto {
domain: string;
}

/** SuframaStatusDto */
export interface SuframaStatusDto {
/**
* Código da situação cadastral:
* 1\. Ativa.
* 2\. Inativa.
* 3\. Bloqueada.
* 4\. Cancelada.
* 5\. Cancelada Ag. Rec.
* @format integer
* @example 1
*/
id: number;
/**
* Descrição da situação cadastral.
* @example "Ativa"
*/
text: string;
}

/** SuframaActivityDto */
export interface SuframaActivityDto {
/**
Expand Down Expand Up @@ -394,36 +394,28 @@ export interface SuframaDto {
* @example "2024-06-05T17:52:39.136Z"
*/
updated: string;
/**
* Razão social.
* @example "CNPJA TECNOLOGIA LTDA"
*/
name: string;
/** Informações da natureza jurídica. */
nature: NatureDto;
/**
* Indica se o estabelecimento é a Matriz.
* @example true
*/
head: boolean;
/** Informações do endereço. */
address: AddressDto;
/** Lista de telefones. */
phones: PhoneDto[];
/** Lista de e-mails. */
emails: EmailDto[];
/**
* Número da inscrição SUFRAMA.
* @format numeric
* @example "200400029"
*/
number: string;
/**
* Razão social.
* @example "CNPJA TECNOLOGIA LTDA"
*/
name: string;
/**
* Data de inscrição na SUFRAMA.
* @format iso8601
* @example "2020-01-01"
*/
since: string;
/**
* Indica se o estabelecimento é a Matriz.
* @example true
*/
head: boolean;
/**
* Indica se o projeto está aprovado.
* @example true
Expand All @@ -437,6 +429,14 @@ export interface SuframaDto {
approvalDate: string;
/** Informações da situação cadastral. */
status: SuframaStatusDto;
/** Informações da natureza jurídica. */
nature: NatureDto;
/** Informações do endereço. */
address: AddressDto;
/** Lista de telefones. */
phones: PhoneDto[];
/** Lista de e-mails. */
emails: EmailDto[];
/** Informações da atividade econômica principal. */
mainActivity: SuframaActivityDto;
/** Lista de atividades econômicas secundárias. */
Expand Down Expand Up @@ -1253,7 +1253,7 @@ export interface LegacySimplesNacionalDto {
/**
* Data da última atualização do Simples Nacional.
* @format iso8601
* @example "2024-07-23T21:32:09.529Z"
* @example "2024-08-12T21:40:01.505Z"
*/
last_update: string;
/**
Expand Down Expand Up @@ -1332,7 +1332,7 @@ export interface LegacySintegraDto {
/**
* Data da última atualização do Cadastro de Contribuintes.
* @format iso8601
* @example "2024-07-23T21:32:09.542Z"
* @example "2024-08-12T21:40:01.511Z"
*/
last_update: string;
/**
Expand Down Expand Up @@ -1463,7 +1463,7 @@ export interface LegacyCompanyDto {
/**
* Data da última atualização.
* @format iso8601
* @example "2024-07-23T21:32:09.543Z"
* @example "2024-08-12T21:40:01.512Z"
*/
last_update: string;
/**
Expand Down
2 changes: 1 addition & 1 deletion source/http/http.enum.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
export interface HttpOptions {
baseUrl: string;
authorization: string;
authorization?: string;
}

export enum HttpMethod {
Expand Down
24 changes: 24 additions & 0 deletions source/open/office/open.office.service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { OfficeDto, OfficeReadDto } from '../../cnpja/cnpja.dto';
import { HttpService } from '../../http/http.service';

export class OpenOfficeService {

public constructor(
private httpService: HttpService,
) { }

/**
* ### Consulta CNPJ
* Adquire de forma centralizada múltiplas informações de um estabelecimento, incluindo Receita Federal,
* Simples Nacional, Cadastro de Contribuintes e SUFRAMA.
* @param params
*/
public read(params: Pick<OfficeReadDto, 'taxId'>): Promise<OfficeDto> {
const { taxId } = params;

return this.httpService.get('office/:taxId', {
replacements: { taxId },
});
}

}
24 changes: 24 additions & 0 deletions source/open/open.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { HttpService } from '../http/http.service';
import { OpenOfficeService } from './office/open.office.service';

export class CnpjaOpen {

/** Operações relacionadas a API de Estabelecimentos. */
public office: OpenOfficeService;

public constructor() {
this.setup();
}

/**
* Resolve dependency tree and inject providers.
*/
private setup(): void {
const httpService = new HttpService({
baseUrl: 'https://open.cnpja.com',
});

this.office = new OpenOfficeService(httpService);
}

}

0 comments on commit d99145b

Please sign in to comment.