motamonteiro/sefaz-portal

There is no license information available for the latest version (1.0.19) of this package.

1.0.19 2022-05-21 12:42 UTC

README

Pacote que configura automaticamente o frontend das aplicações.

Instale uma nova versão do Laravel

laravel new novoSistema

Crie a chave da aplicação

php artisan key:generate

Altere o nome da aplicação com o comando:

 php artisan app:name NovoSistema

Adicione a dependência do Sefaz/Portal no novoSistema:

composer require motamonteiro/sefaz-portal

Publique os arquivos necessários na pasta public

php artisan vendor:publish

Escolha a opção do PortalServiceProvider

[5 ] Provider: MotaMonteiro\Sefaz\Portal\Providers\PortalServiceProvider

Abra o aqrquivo app\Http\Kernel.php e adicione o PortalMiddleware (FrontendMiddleware ou BackendMiddleware) para controlar a autenticacao e a permissao dos usuários

/**
 * The application's route middleware groups.
 *
 * @var array
 */
protected $middlewareGroups = [
    'web' => [
        ...
        //\App\Http\Middleware\VerifyCsrfToken::class, (se quiser, comente a verificação do CsrfToken)
        ...
    ],
    ...
];

/**
 * The application's route middleware.
 *
 * These middleware may be assigned to groups or used individually.
 *
 * @var array
 */
protected $routeMiddleware = [
    'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    'can' => \Illuminate\Auth\Middleware\Authorize::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'portal' => \MotaMonteiro\Sefaz\Portal\Http\Middleware\FrontendMiddleware::class,
    //'portal' => \MotaMonteiro\Sefaz\Portal\Http\Middleware\BackendMiddleware::class,
];

Abra o arquivo app\Providers\EventServiceProvider.php e substitua a variavel $listen de acordo com o trecho abaixo

/**
     * The event listener mappings for the application.
     *
     * @var array
     */
    protected $listen = [
        'MotaMonteiro\Sefaz\Portal\Events\ServidorApiNaoRespondeuEvent' => [
            'MotaMonteiro\Sefaz\Portal\Listeners\ServidorApiIndisponivelListener',
        ],
        'MotaMonteiro\Sefaz\Portal\Events\ServidorApiNaoRespondeuCorretamenteEvent' => [
            'MotaMonteiro\Sefaz\Portal\Listeners\ServidorApiRespostaInvalidaListener',
        ],
    ];

Copie trecho abaixo e cole no final do arquivo .env e altere de acordo com o seu projeto

#-----------------------------------------------------------------------------------------------------------------------
#    CONFIGURAÇÕES PARA USO DO PACOTE SEFAZ-PORTAL
#-----------------------------------------------------------------------------------------------------------------------

SISTEMA_VERSAO='0.1.0'
SISTEMA_CODIGO= ${APP_NAME}
SISTEMA_NOME=${APP_NAME}
SISTEMA_DESC='Sistema de Exemplo'
SISTEMA_URL= ${APP_URL}
SISTEMA_URL_BACKEND='https://api-cod_sistema_sistema-metro-des.com.br/v1/'
SISTEMA_TOKEN_KEY_BACKEND='portaltokendev'

MODULO_CODIGO= ''
MODULO_NOME=''
MODULO_URL= ''

AMBIENTE_SIGLA=${APP_ENV}
AMBIENTE_NOME='Ambiente Local'

CDN_CSS='https://cdn-des.sefaz.es.gov.br/layout/css/'
CDN_JS='https://cdn-des.sefaz.es.gov.br/layout/js/'
CDN_IMG='https://cdn-des.sefaz.es.gov.br/layout/img/'

EMAIL_BACKEND='test@test.com'
EMAIL_BACKEND_SERVIDOR='test@test.com'
EMAIL_FRONTEND='test@test.com'
EMAIL_PORTAL_API='test@test.com'

PORTAL_URL='https://s2-metro-des.sefaz.es.gov.br/portal/'
PORTAL_NOME_COOKIE='PORTAL_TOKEN_DEV'

PORTAL_API_URL='https://s2-intranet-des.sefaz.es.gov.br/api/portal/'
PORTAL_API_TOKEN_KEY=${SISTEMA_TOKEN_KEY_BACKEND}

No caso de uma aplicação Frontend, abra o arquivo public\css\app.css e remova todo o conteúdo do arquivo para não dar conflito com o CDN SEFAZ.

Crie uma rota de exemplo dentro de routes\web.php

<?php

Route::get('/', ['as' => 'exemplo', 'middleware' => 'portal:COD_FUNCAO', 'uses' => 'ExemploController@index']);

Crie um controller de exemplo dentro de app\Http\Controllers

<?php

namespace App\Http\Controllers;

class ExemploController extends Controller
{
    public function index()
    {
        return view('exemplo');
    }
}

Crie uma view de exemplo dentro de resources\views\exemplo.blade.php

@extends('Portal::layout.default')
@section('content')
    Exemplo
@endsection

Inicie o servidor do php

php -S 0.0.0.0:8000 -t public

Inicie o browser

http://ESTACAO.net.sefaz.es.gov.br:8000