PHP code example of jcf / auvo

1. Go to this page and download the library: Download jcf/auvo library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

jcf / auvo example snippets


use Jcf\Auvo\Facades\Auvo;

// Fazer login manualmente
$token = Auvo::auth()->signIn();

// Obter token válido (renova automaticamente se necessário)
$token = Auvo::auth()->getValidToken();

// Obter apenas o access token
$accessToken = Auvo::auth()->getAccessToken();

use Jcf\Auvo\Facades\Auvo;

// Buscar todos os usuários - retorna AuvoResponse
$response = Auvo::users()->get();

// Acessar entidades da resposta
$usuarios = $response->entityList();

// Buscar um usuário específico - retorna Collection
$usuario = Auvo::users()->first(123);

// Buscar todos os clientes
$response = Auvo::customers()->get();
$clientes = $response->entityList();

// Buscar uma tarefa específica
$tarefa = Auvo::tasks()->first(456);

use Jcf\Auvo\Facades\Auvo;

$response = Auvo::tasks()
    ->period('2024-01-01', '2024-01-31')
    ->get();

// Acessar a lista de entidades como Collection
$tasks = $response->entityList();

// Acessar dados de paginação
$totalItems = $response->totalItems();
$currentPage = $response->currentPage();
$pageSize = $response->pageSize();
$hasMore = $response->hasMorePages();

// Acessar links HATEOAS
$links = $response->links();

// Acessar todos os dados de paginação
$paginationData = $response->pagedSearchReturnData();

// Acessar dados brutos da resposta
$raw = $response->raw();

// Usar métodos de Collection diretamente (delegação mágica)
$filtered = $response->filter(fn($task) => $task['finished'] === true);
$mapped = $response->map(fn($task) => $task['taskID']);
$firstTask = $response->first();
$count = $response->count();

use Jcf\Auvo\Facades\Auvo;

// Buscar TODOS os usuários (itera todas as páginas automaticamente)
// Retorna Collection diretamente
$todosUsuarios = Auvo::users()->getAll();

// Buscar TODAS as tarefas de um período
$todasTarefas = Auvo::tasks()
    ->period('2024-01-01', '2024-12-31')
    ->type(197448)
    ->getAll();

// Buscar TODOS os clientes ativos
$todosClientes = Auvo::customers()
    ->active()
    ->getAll();

// Buscar TODAS as equipes ativas
$todasEquipes = Auvo::teams()
    ->active()
    ->getAll();

// Para maior controle, use allPages() que retorna o objeto AllPagesQuery
$allPagesQuery = Auvo::tasks()->period('2024-01-01', '2024-12-31')->allPages();
$todasTarefas = $allPagesQuery->get(); // Retorna Collection

// Buscar usuários administradores
$response = Auvo::users()->userType(3)->get();
$admins = $response->entityList();

// Buscar usuários disponíveis para tarefas
$response = Auvo::users()->availableForTasks()->get();
$disponiveis = $response->entityList();

// Buscar por email
$response = Auvo::users()->email('[email protected]')->get();
$usuario = $response->entityList()->first();

// Combinar filtros
$response = Auvo::users()
    ->userType(2) // 1 - user | 2 - team manager | 3 - administrator
    ->availableForTasks()
    ->get();

$usuarios = $response->entityList();

// Buscar tarefas por período
$response = Auvo::tasks()
    ->period('2024-01-01', '2024-01-31')
    ->get();

$tarefas = $response->entityList();

// Buscar tarefas de um usuário
$response = Auvo::tasks()
    ->userId(123)
    ->get();

$tarefas = $response->entityList();

// Buscar tarefas agendadas
$response = Auvo::tasks()->scheduled()->get();
$agendadas = $response->entityList();

// Buscar tarefas concluídas
$response = Auvo::tasks()->completed()->get();
$concluidas = $response->entityList();

// Combinar múltiplos filtros com paginação e seleção de campos
$response = Auvo::tasks()
    ->period('2024-01-01', '2024-01-31')
    ->userId(123)
    ->customerId(456)
    ->type(197448)
    ->page(1)
    ->pageSize(100)
    ->selectFields('taskID,customerId,customerDescription,finished')
    ->get();

$tarefas = $response->entityList();
$totalItens = $response->totalItems();
$hasMorePages = $response->hasMorePages();

// Buscar clientes ativos
$response = Auvo::customers()->active()->get();
$clientes = $response->entityList();

// Buscar por CNPJ/CPF
$response = Auvo::customers()->document('12345678901')->get();
$cliente = $response->entityList()->first();

// Buscar por email
$response = Auvo::customers()->email('[email protected]')->get();
$cliente = $response->entityList()->first();

// Buscar por segmento
$response = Auvo::customers()
    ->segmentId(10)
    ->active()
    ->get();

$clientes = $response->entityList();

// Buscar equipes ativas
$response = Auvo::teams()->active()->get();
$equipes = $response->entityList();

// Buscar equipes por líder/gerente
$response = Auvo::teams()->managerId(123)->get();
$equipes = $response->entityList();

// Buscar por nome
$response = Auvo::teams()->name('Equipe A')->get();
$equipe = $response->entityList()->first();

// GET - Buscar recursos
$response = Auvo::users()->get();
$usuarios = $response->entityList();

// GET - Buscar recurso único
$usuario = Auvo::users()->first(123);

// POST - Criar novo recurso (retorna array)
$novoUsuario = Auvo::users()->create([
    'name' => 'João Silva',
    'email' => '[email protected]',
    'smartPhoneNumber' => '11999999999',
    'culture' => 'pt-BR',
    'jobPosition' => 'Técnico',
    'userType' => 1,
    'password' => 'senha123',
    // ... outros campos
]);

// PATCH - Atualizar recurso (retorna array)
$usuarioAtualizado = Auvo::users()
    ->find(123)
    ->update([
        'name' => 'João Silva Santos',
        'email' => '[email protected]',
    ]);

// DELETE - Excluir recurso (retorna array)
$resultado = Auvo::users()->find(123)->delete();

$response = Auvo::users()
    ->where('campo', 'valor')
    ->where('outro_campo', 'outro_valor')
    ->get();

$usuarios = $response->entityList();

use Jcf\Auvo\Exceptions\RateLimitException;

try {
    $response = Auvo::users()->get();
    $usuarios = $response->entityList();
} catch (RateLimitException $e) {
    // Rate limit excedido - aguarde antes de tentar novamente
    sleep(60);
} catch (\Exception $e) {
    // Outro tipo de erro
    logger()->error('Erro na API Auvo: ' . $e->getMessage());
}
bash
php artisan vendor:publish --provider="Jcf\Auvo\Providers\AuvoServiceProvider" --tag=config