All files / src/lib opc-api.js

0% Statements 0/64
0% Branches 0/1
0% Functions 0/1
0% Lines 0/64

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81                                                                                                                                                                 
/**
 * OPC API Client
 */
import { get, post, put, del } from "./api.js";
 
// Tasks
export async function getTasks(filters = {}) {
  const params = new URLSearchParams();
  if (filters.status) params.append("status", filters.status);
  if (filters.assigned_to) params.append("assigned_to", filters.assigned_to);
  if (filters.project_id) params.append("project_id", filters.project_id);
  if (filters.priority) params.append("priority", filters.priority);
  if (filters.tags) params.append("tags", filters.tags.join(","));
  if (filters.limit) params.append("limit", filters.limit);
  if (filters.offset) params.append("offset", filters.offset);
 
  const query = params.toString();
  return get(`/opc/tasks${query ? "?" + query : ""}`);
}
 
export async function createTask(task) {
  return post("/opc/tasks", task);
}
 
export async function updateTask(taskId, updates) {
  return put(`/opc/tasks/${taskId}`, updates);
}
 
export async function deleteTask(taskId) {
  return del(`/opc/tasks/${taskId}`);
}
 
export async function moveTask(taskId, status) {
  return put(`/opc/tasks/${taskId}/move`, { status });
}
 
export async function assignTask(taskId, assigned_to, assigned_type = "human") {
  return post(`/opc/tasks/${taskId}/assign`, { assigned_to, assigned_type });
}
 
export async function getTaskHistory(taskId) {
  return get(`/opc/tasks/${taskId}/history`);
}
 
export async function getTaskTime(taskId) {
  return get(`/opc/tasks/${taskId}/time`);
}
 
// Agents
export async function getAgents(enabledOnly = true) {
  return get(`/opc/agents?enabled_only=${enabledOnly}`);
}
 
export async function getAgent(agentId) {
  return get(`/opc/agents/${agentId}`);
}
 
export async function triggerAgent(agentId, taskId) {
  return post(`/opc/agents/${agentId}/execute?task_id=${taskId}`);
}
 
// Executions
export async function getExecutions(filters = {}) {
  const params = new URLSearchParams();
  if (filters.task_id) params.append("task_id", filters.task_id);
  if (filters.agent_id) params.append("agent_id", filters.agent_id);
  if (filters.status) params.append("status", filters.status);
  if (filters.limit) params.append("limit", filters.limit);
 
  const query = params.toString();
  return get(`/opc/executions${query ? "?" + query : ""}`);
}
 
export async function getExecution(executionId) {
  return get(`/opc/executions/${executionId}`);
}
 
export async function approveExecution(executionId, approved) {
  return post(`/opc/executions/${executionId}/approve`, { approved });
}