@controlle.tecnologia/bridge
v1.0.2
Published
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
Downloads
4
Maintainers
Keywords
Readme
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);