Criar um Workflow Completo
Copy
import Triglit from 'triglit';
const client = new Triglit({ apiKey: 'sk_...' });
async function createCompleteWorkflow() {
// 1. Criar o workflow
const workflow = await client.workflows.create({
name: 'Processar Pedido',
description: 'Workflow para processar pedidos de clientes',
});
// 2. Criar uma versão
const version = await client.workflows.versions.create({
workflowId: workflow.id,
nodes: [
{
id: 'node-1',
type: 'trigger_webhook',
name: 'Webhook Trigger',
config: { path: '/pedido' },
inputSchema: {},
outputSchema: {},
},
{
id: 'node-2',
type: 'transform',
name: 'Transform Data',
config: {
transformType: 'expression',
expression: '{ ...input, status: "processed" }',
},
inputSchema: {},
outputSchema: {},
},
],
edges: [
{
id: 'edge-1',
sourceNodeId: 'node-1',
targetNodeId: 'node-2',
},
],
});
// 3. Publicar a versão
const published = await client.workflows.versions.publish(version.id);
// 4. Criar um trigger
const trigger = await client.triggers.create({
workflowVersionId: version.id,
type: 'webhook',
isActive: true,
});
return { workflow, version, trigger };
}
Gerenciar Triggers
Copy
async function manageTriggers(client: Triglit, workflowVersionId: string) {
// Listar todos os triggers
const allTriggers = await client.triggers.list();
// Listar triggers de uma versão específica
const versionTriggers = await client.triggers.listByWorkflowVersion(
workflowVersionId
);
// Criar um novo trigger
const newTrigger = await client.triggers.create({
workflowVersionId,
type: 'webhook',
name: 'Meu Webhook',
isActive: true,
});
// Atualizar um trigger
const updated = await client.triggers.update(newTrigger.id, {
isActive: false,
});
// Deletar um trigger
await client.triggers.delete(newTrigger.id);
}
Processar Todos os Workflows
Copy
async function processAllWorkflows(client: Triglit) {
const workflows = [];
// Auto-paginação: busca todos os workflows automaticamente
for await (const workflow of client.workflows.list({ pageSize: 50 })) {
workflows.push(workflow);
console.log(`Processando: ${workflow.name}`);
}
return workflows;
}
Tratamento de Erros Robusto
Copy
async function safeCreateTrigger(client: Triglit, params: Triglit.TriggerCreateParams) {
try {
return await client.triggers.create(params);
} catch (error) {
if (error instanceof Triglit.AuthenticationError) {
console.error('Erro de autenticação. Verifique sua chave de API.');
throw new Error('Falha na autenticação');
} else if (error instanceof Triglit.RateLimitError) {
console.warn('Rate limit excedido. Aguardando...');
// O SDK já faz retry automático, mas você pode adicionar lógica adicional
throw error;
} else if (error instanceof Triglit.APIError) {
console.error(`Erro da API: ${error.status} - ${error.message}`);
throw error;
} else {
// Erro não relacionado à API
throw error;
}
}
}

