const{ PanamahModels, PanamahAdmin }=require('panamah-sdk-javascript');const{ PanamahAssinante }=PanamahModels;(async()=>{//inicializando a api administrativa PanamahAdmin.init({authorizationToken: process.env.MY_AUTH_TOKEN});try{//buscando um assinanteconstassinante=awaitPanamahAdmin.getAssinante('18475929000132');}catch(e){//caso não existaif(e.name==='PanamahNotFoundError'){//instanciando um modelo de assinanteconstassinante=newPanamahAssinante({id: '18475929000132',fantasia: 'Supermercado Exemplo',nome: 'Supermercado Exemplo Ltda',bairro: 'Rua Poebla',cidade: 'Caucaia',uf: 'CE'});//criando o assinante no PanamahawaitPanamahAdmin.createAssinante(assinante);}}})();
Exemplo de uso da API de streaming com apenas um assinanteId
const{ PanamahModels, PanamahStream }=require('panamah-sdk-javascript');const{ PanamahProduto }=PanamahModels;(async()=>{//inicializando a api de streamingPanamahStream.init({assinanteId: '18475929000132',authorizationToken: process.env.MY_AUTHORIZATION_TOKEN,//(opcional) caso não seja passado, é considerado a variável de ambiente PANAMAH_AUTHORIZATION_TOKENsecret: process.env.MY_SECRET,//(opcional) caso não seja passado, é considerado a variável de ambiente PANAMAH_SECRET});PanamahStream.on('before_save',(model,_,preventSave)=>{console.log('Before save',model);//preventSave(); //essa linha cancelaria o salvamento});PanamahStream.on('before_delete',(model,_,preventDelete)=>{console.log('Before delete',model);//preventDelete(); //essa linha cancelaria a deleção});constproduto=newPanamahProduto({id: '1111',descricao: 'Coca-cola',dataInclusao: newDate().toISOString(),secaoId: '999',composicao: {quantidade: 2,itens: [{produtoId: '432',quantidade: 1},{produtoId: '567',quantidade: 1}]},fornecedores: [{id: '222',principal: true}]});try{//salvando um produtoPanamahStream.save(produto);}catch(e){if(e.name==='PanamahValidationError'){console.error(e);//um erro de validação seria tratado aqui}}//deletando um produtoPanamahStream.delete(produto);//sempre chamar antes de finalizar a aplicaçãoawaitPanamahStream.flush();})();
Exemplo de uso da API de streaming com multi-tenancy
const{ PanamahModels, PanamahStream }=require('panamah-sdk-javascript');const{ PanamahProduto }=PanamahModels;(async()=>{//inicializando a api de streamingPanamahStream.init({authorizationToken: process.env.MY_AUTHORIZATION_TOKEN,//(opcional) caso não seja passado, é considerado a variável de ambiente PANAMAH_AUTHORIZATION_TOKENsecret: process.env.MY_SECRET,//(opcional) caso não seja passado, é considerado a variável de ambiente PANAMAH_SECRET});PanamahStream.on('before_save',(model,assinanteId,preventSave)=>{console.log('Before save',model,assinanteId);//preventSave(); //essa linha cancelaria o salvamento});PanamahStream.on('before_delete',(model,assinanteId,preventDelete)=>{console.log('Before delete',model,assinanteId);//preventDelete(); //essa linha cancelaria a deleção});constproduto=newPanamahProduto({id: '1111',descricao: 'Coca-cola',dataInclusao: newDate().toISOString(),secaoId: '999',composicao: {quantidade: 2,itens: [{produtoId: '432',quantidade: 1},{produtoId: '567',quantidade: 1}]},fornecedores: [{id: '222',principal: true}]});try{//salvando um produto para 3 assinantes diferentesPanamahStream.save(produto,'18475929000132');PanamahStream.save(produto,'02541926375');PanamahStream.save(produto,'12345678901');}catch(e){if(e.name==='PanamahValidationError'){console.error(e);//um erro de validação seria tratado aqui}}//deletando um produto nos 3 assinantesPanamahStream.delete(produto,'18475929000132');PanamahStream.delete(produto,'02541926375');PanamahStream.delete(produto,'12345678901');//sempre chamar antes de finalizar a aplicaçãoawaitPanamahStream.flush();})();