Tickets: createTicketForProject und deleteTicket
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
85b972f9dc
commit
c93cb93a36
2 files changed
+113
No files matched your search
@@ -1,6 +1,7 @@
|
||||
import { config } from '../config.js'
|
||||
import {
|
||||
createDocument,
|
||||
deleteDocument,
|
||||
getDocument,
|
||||
listDocuments,
|
||||
updateDocument,
|
||||
@@ -105,3 +106,47 @@ export async function createFeatureTicket({ customerId, project, featureKey, sit
|
||||
console.log(`[ticketAdmin] Funktions-Ticket #${woid} (${featureKey}) fuer Projekt ${project?.$id} angelegt`)
|
||||
return { ticketId: ticket.$id, woid }
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt ein Ticket fuer ein Projekt an (Zuordnen-Flow, erst beim Abschliessen).
|
||||
* Unbekannter Kunde => Fehler mit status 400.
|
||||
*/
|
||||
export async function createTicketForProject({ customerId, topic, type, requestedBy, startDate, details }) {
|
||||
const customer = customerId
|
||||
? await getDocument(config.collections.customers, customerId).catch(() => null)
|
||||
: null
|
||||
if (!customer) {
|
||||
const err = new Error('Kunde nicht gefunden.')
|
||||
err.status = 400
|
||||
throw err
|
||||
}
|
||||
|
||||
const woid = await generateNextWoid()
|
||||
const ticket = await createDocument(
|
||||
config.collections.workorders,
|
||||
{
|
||||
topic,
|
||||
type,
|
||||
status: 'Open',
|
||||
priority: 1,
|
||||
serviceType: 'Remote',
|
||||
systemType: 'n/a',
|
||||
customerId,
|
||||
customerName: customer.name || '',
|
||||
customerLocation: customer.location || '',
|
||||
requestedBy: requestedBy || '',
|
||||
startDate: startDate || '',
|
||||
details: details || '',
|
||||
woid,
|
||||
createdAt: new Date().toISOString(),
|
||||
},
|
||||
ID.unique()
|
||||
)
|
||||
console.log(`[ticketAdmin] Ticket #${woid} fuer Kunde ${customerId} angelegt`)
|
||||
return { $id: ticket.$id, woid }
|
||||
}
|
||||
|
||||
/** Loescht ein Ticket wieder (Rollback, wenn der Zuordnen-Flow scheitert). */
|
||||
export async function deleteTicket(ticketId) {
|
||||
await deleteDocument(config.collections.workorders, ticketId)
|
||||
}
|
||||
Reference in new issue
Block a user