💡 Exemplos de Uso

Criar uma Integração e Fazer Login

# 1. Criar integração
curl -X POST https://api.teodosius.com/api/v1/integrations \
  -H "Content-Type: application/json" \
  -d '{
    "app_code": "minha-api",
    "display_name": "Minha API",
    "org_id": "uuid-da-organizacao",
    "status": "active"
  }'

# Resposta inclui o secret - guarde-o com segurança!
# {
#   "id": "uuid",
#   "app_code": "minha-api",
#   "secret": "abc123...",
#   ...
# }

# 2. Fazer login
curl -X POST https://api.teodosius.com/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "app_code": "minha-api",
    "secret": "abc123..."
  }'

# Resposta:
# {
#   "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
#   "token_type": "bearer",
#   "expires_in": 3600
# }

Criar um Cliente

curl -X POST https://api.teodosius.com/api/v1/clients \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <token>" \
  -d '{
    "org_id": "uuid",
    "name": "Cliente Exemplo",
    "slug": "cliente-exemplo",
    "email": "cliente@example.com",
    "timezone": "Europe/Lisbon",
    "status": "active"
  }'

Listar Clientes com Paginação

curl -X GET "https://api.teodosius.com/api/v1/clients?page=1&page_size=50" \
  -H "Authorization: Bearer <token>"

Exemplo em JavaScript/TypeScript

const API_BASE = 'https://api.teodosius.com/api/v1';

// Login
async function login(appCode: string, secret: string) {
  const response = await fetch(`${API_BASE}/auth/login`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ app_code: appCode, secret }),
  });
  
  const data = await response.json();
  return data.access_token;
}

// Criar cliente
async function createClient(token: string, clientData: any) {
  const response = await fetch(`${API_BASE}/clients`, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${token}`,
    },
    body: JSON.stringify(clientData),
  });
  
  return response.json();
}

// Listar clientes
async function listClients(token: string, page = 1, pageSize = 25) {
  const response = await fetch(
    `${API_BASE}/clients?page=${page}&page_size=${pageSize}`,
    {
      headers: {
        'Authorization': `Bearer ${token}`,
      },
    }
  );
  
  return response.json();
}

// Uso
const token = await login('minha-api', 'secret-123');
const client = await createClient(token, {
  org_id: 'uuid',
  name: 'Novo Cliente',
  email: 'cliente@example.com',
});
const clients = await listClients(token, 1, 50);