1.0.2 • Published 1 year ago

@controlle.tecnologia/bridge v1.0.2

Weekly downloads
-
License
ISC
Repository
gitlab
Last release
1 year ago

Bridge

Pacote responsável para a comunicação dos microserviços do Controlle, cada microserviço que é necessário a comunicação de outro microserviço é relacionado a uma classe da Bridge. A estrutura de pastas é conforme os microserviços, cada pasta representa um microserviço, exemplo: Pasta Activity contém as API do microserviço de Activity;

Como utilizar

A utilização do pacote se deve a iniciar um serviço e utilizar as funções.

import { Microservice } from '@controlle.tecnologia/bridge';

const MicroserviceService = new Microservice();

MicroserviceService.method(...params);

Serviços e Funções

Activity
// Method addActivity
// Params (headers, activity)
// > headers: req.headers
// > activity: {
//      id_item,    > id do item que foi modificado
//      id_group,   > uuid gerado em código caso a operação foi feita em lote para identificar qual grupo de dados alterado
//      type,       > Enum que identifica qual tabela foi utilizado
//      action,     > Enum que identifica qual é a função feita, exemplo: alteração, exclusão....
//      old,        > JSON da linha antes da alteração
//      new,        > JSON da linha com a alteração
//  }

//Exemplo:
export const buildActivityEntity = (id, old = {}, entity = {}, action) => {
  const EnumType = Enum.Utils.Transform(Enum.Activity.Type);

  return {
    'id_item': id,
    'id_group': null,
    type: EnumType.ENTITY,
    action: action,
    old: JSON.stringify(old),
    new: JSON.stringify(entity),
  };
};

const ActivityService = new Activity();

ActivityService.addActivity(req.headers, buildActivityEntity(entity.id, {}, entity, EnumAction.POST));
Permission
// Method verify
// Params (req, res, next, type)
// > req: req
// > res: res
// > next: next
// > type: > Enum que identifica qual a permissão requisitada
// O método da permissão e o id(caso for alteração e exclusão) são identificados pela requisição
// O método de verify é utilizado na verificação da rota e devolve o valor da permissão em: res.locals.permission

//Exemplo
const PermissionService = new Permission();

router.get('/', (req, res, next) => PermissionService.verify(req, res, next, EnumPermission.TYPE), get);

// ---------------------------------------------------------------------------------------------------------------- //

// Method createPermissions
// Params (req, idEntity, idUserEntity, role)
// > req: req
// > idEntity: id da Entidade
// > idUserEntity: idUserEntity que será adicionado permissões
// > role: role que será adicionada

// Esse método é utilizado atualmente na criação de entidade, ele é responsável pela criação do mapa inicial de permissões

//Exemplo
const PermissionService = new Permission();

await PermissionService.createPermissions(req, idEntity, idUserEntity, EnumRole.ADMINISTRATOR);
1.0.2

1 year ago

1.0.1

1 year ago