Giter VIP home page Giter VIP logo

corporate-importer's Introduction

Corporate Importer para aplicações Laravel

Latest Version on Packagist GitHub Release Date GitHub last commit Codecov coverage GitHub Tests Action Status GitHub Code Style Action Status Maintainability GitHub issues GitHub repo size Packagist Total Downloads GitHub

Package para importar a Estrutura Corporativa em formato XML para aplicações Laravel.

Este package foi planejado de acordo com as necessidades da Justiça Federal da 2ª Região. Contudo, ele pode ser utilizado em outros órgãos e projetos observado os termos previstos no licenciamento.

use Fcno\CorporateImporter\Facades\CorporateImporter;

CorporateImporter::from($file_path)->run();

 


Table of Contents

  1. Notes

  2. Prerequisites

  3. Installation

  4. How it works

  5. Testing and Continuous Integration

  6. Changelog

  7. Contributing

  8. Code of conduct

  9. Security Vulnerabilities

  10. Support and Updates

  11. Credits

  12. Thanks

  13. License


Notes

Estrutura Corporativa é o nome dado à consolidação das informações mínimas sobre pessoal, cargos, funções de confiança e lotações.

⬆️ Voltar

 

Prerequisites

  1. Dependências PHP

    PHP ^8.0

    Extensões

    composer check-platform-reqs
  2. GitHub Package Dependencies

⬆️ Voltar

 

Installation

  1. Instalar via composer:

    composer require fcno/corporate-importer
  2. Publicar as migrations necessárias

    php artisan vendor:publish --provider='Fcno\CorporateImporter\CorporateImporterServiceProvider' --tag='migrations'
  3. Opcionalmente publicar as configurações

    php artisan vendor:publish --provider='Fcno\CorporateImporter\CorporateImporterServiceProvider' --tag='config'
  4. Opcionalmente publicar as traduções

    php artisan vendor:publish --provider='Fcno\CorporateImporter\CorporateImporterServiceProvider' --tag='lang'

    As strings disponíveis para tradução são as que seguem. Altere-as de acordo com a necessidade.

    <?php
    
    return [
        'end' => 'Fim da importação da estrutura corporativa',
        'filenotreadableexception' => 'O arquivo informado não pôde ser lido!',
        'start' => 'Início da importação da estrutura corporativa',
        'validation' => 'Validação falhou!',
    ];

    Este package já possui traduções para pt-br e en.

     

⬆️ Voltar

 

How it works

Gerar o arquivo com a Estrutura Corporativa em formato XML:

<?xml version='1.0' encoding='UTF-8'?>
<base>
    <cargos>
        <!-- Cargos:
            id: integer, obrigatório e maior que 1
            nome: string, obrigatório e tamanho entre 1 e 255
            -->
        <cargo id="1" nome="Cargo 1"/>
        <cargo id="2" nome="Cargo 2"/>
    </cargos>
    <funcoes>
        <!-- Funções:
            id: integer, obrigatório e maior que 1
            nome: string, obrigatório e tamanho entre 1 e 255
            -->
        <funcao id="1" nome="Função 1"/>
        <funcao id="2" nome="Função 2"/>
    </funcoes>
    <lotacoes>
        <!-- Lotações:
            id: integer, obrigatório e maior que 1
            nome: string, obrigatório e tamanho entre 1 e 255
            sigla: string, obrigatório e tamanho entre 1 e 50
            idPai: integer, opcional, id de uma lotação existente
            -->
        <lotacao id="1" nome="Lotação 1" sigla="Sigla 1"/>
        <lotacao id="2" nome="Lotação 2" sigla="Sigla 2" idPai=""/>
        <lotacao id="3" nome="Lotação 3" sigla="Sigla 3" idPai="1"/>
    </lotacoes>
    <pessoas>
        <!-- Lotações:
            nome: string, obrigatório e tamanho entre 1 e 255
            sigla: string, obrigatório (preferencialmente o usuário do LDAP Server) e tamanho entre 1 e 20
            cargo: integer, obrigatório, id de um cargo existente
            lotacao: integer, obrigatório, id de uma lotação existente
            funcaoConfianca: integer, opcional, id de uma função de confiança existente
            -->
        <pessoa id="1" nome="Pessoa 1" sigla="Sigla 1" cargo="1" lotacao="2" funcaoConfianca=""/>
        <pessoa id="2" nome="Pessoa 2" sigla="Sigla 2" cargo="1" lotacao="2" funcaoConfianca="2"/>
    </pessoas>
</base>

 

Para realizar a importação, são expostos os seguintes métodos:

 

✏️ from

Assinatura e uso: define o caminho completo para o arquivo XML com a Estrutura Corporativa

use Fcno\CorporateImporter\Facades\CorporateImporter;

/**
 * @param string $file_path full path para o arquivo
 * 
 * @return static
 */
CorporateImporter::from($file_path);

Retorno: Instância da classe CorporateImporter

 

✏️ run

Assinatura e uso: Importa a estrutura definida no arquivo informado

use Fcno\CorporateImporter\Facades\CorporateImporter;

/**
 * @throws \Fcno\CorporateImporter\Exceptions\FileNotReadableException
 *
 * @return void
*/
CorporateImporter::from($file_path)->run();

Retorno: void

 

🚨 Exceptions:

  • run lança \Fcno\CorporateImporter\Exceptions\FileNotReadableException caso não tenha permissão de leitura no arquivo ou ele não seja encontrado

⬆️ Voltar

 

Testing and Continuous Integration

composer analyse
composer csfix
composer test
composer coverage

⬆️ Voltar

 

Changelog

Por favor, veja o CHANGELOG para maiores informações sobre o que mudou em cada versão.

⬆️ Voltar

 

Contributing

Por favor, veja CONTRIBUTING para maiores detalhes.

⬆️ Voltar

 

Code of conduct

Para garantir que todos sejam bem vindos a contribuir com esse projeto open-source, por favor leia e siga o Código de Conduta.

⬆️ Back

 

Security Vulnerabilities

Por favor, veja na política de segurança como reportar vulnerabilidades ou falhas de segurança.

⬆️ Voltar

 

Support and Updates

A versão mais recente receberá suporte e atualizações sempre que houver necessidade. As demais receberão apenas atualizações para corrigir vulnerabilidades de segurança por até 06 meses após ela ter sido substituída por uma nova versão.

🐛 Encontrou um bug?!?! Abra um issue.

✨ Alguma ideia nova?!?! Inicie uma discussão.

⬆️ Voltar

 

Credits

⬆️ Voltar

 

Thanks

👋 Agradeço às pessoas e organizações abaixo por terem doado seu tempo na construção de projetos open-source que foram usados neste package.

💸 Algumas dessas pessoas ou organizações possuem alguns produtos/serviços que podem ser comprados. Se você puder ajudá-los comprando algum deles ou se tornando um patrocinador, mesmo que por curto período, ajudará toda a comunidade open-source a continuar desenvolvendo soluções para todos.

⬆️ Voltar

 

License

The MIT License (MIT). Por favor, veja o License File para maiores informações.

⬆️ Voltar

corporate-importer's People

Contributors

fcno avatar oldfcnd avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.