function ticketStateColorLookup(ticket) { if (ticket.startsWith('closed_')) { return 'secondary'; } if (ticket.startsWith('pending_')) { return 'warning'; } if (ticket.startsWith('waiting_')) { return 'primary'; } return 'danger'; } function ticketStateIconLookup(ticket) { if (ticket.startsWith('closed_')) { return 'check'; } if (ticket.startsWith('pending_')) { return 'exclamation'; } if (ticket.startsWith('waiting_')) { return 'hourglass'; } return 'exclamation'; } const http = { get: async (url, token) => { if (!token) { return null; } const response = await fetch('/api' + url, { method: 'GET', headers: { "Content-Type": "application/json", "Authorization": `Token ${token}`, }, }); const success = response.status === 200 || response.status === 201; return {data: await response.json() || {}, success}; }, post: async (url, data, token) => { if (!token) { return null; } const response = await fetch('/api' + url, { method: 'POST', headers: { "Content-Type": "application/json", "Authorization": `Token ${data.token}`, }, body: JSON.stringify(data), }); const success = response.status === 200 || response.status === 201; return {data: await response.json() || {}, success}; }, put: async (url, data, token) => { if (!token) { return null; } const response = await fetch('/api' + url, { method: 'PUT', headers: { "Content-Type": "application/json", "Authorization": `Token ${token}`, }, body: JSON.stringify(data), }); const success = response.status === 200 || response.status === 201; return {data: await response.json() || {}, success}; }, patch: async (url, data, token) => { if (!token) { return null; } const response = await fetch('/api' + url, { method: 'PATCH', headers: { "Content-Type": "application/json", "Authorization": `Token ${token}`, }, body: JSON.stringify(data), }); const success = response.status === 200 || response.status === 201; return {data: await response.json() || {}, success}; }, delete: async (url, token) => { if (!token) { return null; } const response = await fetch('/api' + url, { method: 'DELETE', headers: { "Content-Type": "application/json", "Authorization": `Token ${token}`, }, }); const success = response.status === 200 || response.status === 201; return {data: await response.json() || {}, success}; } } export {ticketStateColorLookup, ticketStateIconLookup, http};