UNPKG

@seniorsistemas/senior-hcm

Version:
167 lines (126 loc) 7.44 kB
# Senior API SDK para Node.js Esta biblioteca permite desenvolvedores criar integrações com API HCM da Senior. Você pode ler a documentação completa: [Dependent](https://dev.senior.com.br/apis/hcm_dependent/) [Recruitment](https://dev.senior.com.br/apis/hcm_recruitment/) [Payroll](https://dev.senior.com.br/apis/hcm_payroll/) ## Versão suportada do Node.js A SDK suporta o Node.js na versão 10 ou superior. ## Instalação ``` npm i @seniorsistemas/senior-hcm --save ``` ## Ambiente Atualmente o ambiente padrão para o desenvolvimento é o da Homologx. Para fazer a troca do ambiente basta chamar o metodo `setEnvironment` ou `setUrl` caso queira passar uma url da plataforma diferente das configuradas: ```javascript export enum ENVIRONMENTS { DEV = 'https://platform-homologx.senior.com.br/t/senior.com.br/bridge/1.0', PROD = 'https://api.senior.com.br', } ``` ### Configurações Os comando abaixo permitem configuração de proxy: - npm config set proxy <ALTERAR_PARA_PROXY_HTTP> - npm config set https-proxy <ALTERAR_PARA_PROXY_HTTPS> _Criar arquivo *.env* na raíz do projeto_ #### _Adicionar ao arquivo as seguintes propriedades_ ```text SENIOR_USERNAME = <NOME_DO_USUARIO> PASS = <SENHA_DO_USUARIO> TENANT_NAME = <NOME_DO_TENANT> ``` ### Iniciando a utilização Primeiro você precisa criar um arquivo `.js`, como por exemplo: `recruitment.js`, e nele requerer a biblioteca. ```javascript const HCMApi = require('@seniorsistemas/senior-hcm'); ``` Então você precisa criar instância informando usuário e senha. ```javascript const api = new HCMApi(username, password); ``` Mudando o ambiente: ```javascript const { ENVIRONMENTS } = require('@seniorsistemas/senior-core'); api.setEnvironment(ENVIRONMENTS.PROD); ``` ### Exemplos Na pasta [examples](https://github.com/dev-senior-com-br/senior-hcm-node/tree/develop/examples) você encontrar alguns exemplos. Para executa-los, basta rodar o comando abaixo com o nome do arquivo (substituir a chave <nome_arquivo>). ``` node examples/<nome_arquivo>.js ``` Para rodar arquivos `.ts` é necessário instalar o pacote `ts-node` globalmente (`npm i -g ts-node`) e executar o exemplo conforme abaixo. ``` ts-node examples/<nome_arquivo>.ts ``` Alguns exemplos necessitam de propriedades específicas, descritas no inicio dos arquivos. Para configurar basta criar um arquivo no root do projeto chamado `.env` contendo chave=valor para cada variavel de ambiente que o exemplo necessita. Exemplo: No arquivo `examples/recruitment.js` usamos a variavel de ambiente: `process.env.SENIOR_USERNAME`, sendo assim no arquivo `.env` você vai colocar o seguinte: ``` SENIOR_USERNAME=<seu_usuario_da_plataforma> PASS=<seu_password_da_plataforma> ``` Essa configuração é igual ao colocar variáveis de ambiente, o `.env` é só um falicitador para o node. #### Exemplos implementados * [Dependent](examples/dependent.js) * [Entidade](examples/entidade.ts) * [Payroll](examples/payroll.js) * [Recruitment](examples/recruitment.js) #### Entidades do Recruitment * Currículo - [resume.ts](lib/model/recruitment/resume.ts) * Contato telefônico (Currículo) - [resumePhoneContact.ts](lib/model/recruitment/resumePhoneContact.ts) * Educação (Currículo) - [educationSection.ts](lib/model/recruitment/rducationSection.ts) * Experiência profissional (Currículo) - [professionalExperienceSection.ts](lib/model/recruitment/professionalExperienceSection.ts) * Vaga de emprego - [vacancy.ts](lib/model/recruitment/vacancy.ts) * Processo seletivo do candidato - [recruitmentProcess.ts](lib/model/recruitment/recruitmentProcess.ts) * Etapa do processo seletivo do candidato - [recruitmentProcessStage.ts](lib/model/recruitment/recruitmentProcessStage.ts) * Compromisso do processo seletivo - [appointment.ts](lib/model/recruitment/appointment.ts) #### Entidades do Payroll * Histórico de natureza de despesa - [historicalExpenseNature.ts](lib/model/payroll/historicalExpenseNature.ts) * Histórico de movimentação de um colaborador - [movimentation.ts](lib/model/payroll/movimentation.ts) * Vínculo do telefone de contato com a pessoa - [personphonecontact.ts](lib/model/payroll/personphonecontact.ts) * Documentação de uma pessoa - [document.ts](lib/model/payroll/document.ts) * Histórico de sindicato - [syndicate.ts](lib/model/payroll/syndicate.ts) * Aviso Prévio - [priorNotice.ts](lib/model/payroll/priorNotice.ts) * Histórico de posto de trabalho - [historicalJobPosition.ts](lib/model/payroll/historicalJobPosition.ts) * Histórico de afastamento - [historicalleave.ts](lib/model/payroll/historicalleave.ts) * Histórico de horário - [historicalWorkshift.ts](lib/model/payroll/historicalWorkshift.ts) * Tipo de atuação - [actingtype.ts](lib/model/payroll/actingtype.ts) * Estrutura do posto de trabalho - [workstationgroupstructure.ts](lib/model/payroll/workstationgroupstructure.ts) * Pessoa - [person.ts](lib/model/payroll/Person.ts) * Histórico de centro de custo - [historicalCostCenter.ts](lib/model/payroll/historicalCostCenter.ts) * Vínculo do colaborador - [historicalEmploymentRelationship.ts](lib/model/payroll/historicalEmploymentRelationship.ts) * Histórico de categoria do eSocial - [historicalEsocialCategory.ts](lib/model/payroll/historicalEsocialCategory.ts) * Outros contratos - [otherContract.ts](lib/model/payroll/otherContract.ts) * Telefone de contato - [phonecontact.ts](lib/model/payroll/phonecontact.ts) * Local de trabalho - [department.ts](lib/model/payroll/department.ts) * Endereço de email da pessoa - [Email.ts](lib/model/payroll/email.ts) * Conta bancária - [account.ts](lib/model/payroll/account.ts) #### Entidades do Dependent * Dependente - [dependent.ts](lib/model/dependent/dependent.ts) * Tutela - [tutelage.ts](lib/model/dependent/tutelage.ts) * Auxílio creche - [childcareAssistance.ts](lib/model/dependent/childcareAssistance.ts) * Salário família - [familySalary.ts](lib/model/dependent/familySalary.ts) * Documento do salário família - [familySalaryDocument.ts](lib/model/dependent/familySalaryDocument.ts) * Dependente do imposto de renda - [dependentIncomeTax.ts](lib/model/dependent/dependentIncomeTax.ts) * Dependente do plano saúde - [dependentHealthInsurance.ts](lib/model/dependent/dependentHealthInsurance.ts) * Pensão judicial - [judicialPension.ts](lib/model/dependent/judicialPension.ts) ### Links * [Documentação da API](https://dev.senior.com.br/api/platform/) ### Entidades Para utilizar as entidades é necessário chamar o metódo `getEntity` da api passando por parâmetro o domínio, serviço e a entidade. ```javascript const entity: Entity<Vacancy> = api.getEntity("hcm", "recruitment", "vacancy"); entity.get().then(resp => console.log(resp.body)); // Caso seja necessário utilizar a classe de filtro String filter = new FilterBuilder().field("id").equals("60B3957C72C44E00A9739451B07265C3").build(); // O mesmo terá como retorno o seguinte : ?filter=id eq '60B3957C72C44E00A9739451B07265C3' ``` ## Obtendo versão de distribuição Última versão disponível em [https://www.npmjs.com/package/@seniorsistemas/senior-hcm](https://www.npmjs.com/package/@seniorsistemas/senior-hcm) ## [Guia de contribuição](https://dev.senior.com.br/guia-de-contribuicao/) ## Suporte Criar uma issue [https://github.com/dev-senior-com-br/senior-hcm-node/issues](https://github.com/dev-senior-com-br/senior-hcm-node/issues) ## License Copyright © 2020.