Basic Task deletion
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { defineStore } from 'pinia';
|
||||
import { AppwriteIds, databases, ID } from 'src/boot/appwrite';
|
||||
import type { Models } from 'appwrite';
|
||||
import { Boat } from './boat';
|
||||
|
||||
export const TASKSTATUS = ['ready', 'complete', 'waiting', 'archived'];
|
||||
|
||||
@@ -15,7 +16,7 @@ export interface Task extends Partial<Models.Document> {
|
||||
volunteers_required: number;
|
||||
status: string;
|
||||
depends_on: Task[];
|
||||
boat: string;
|
||||
boat?: Boat;
|
||||
} // TODO: convert some of these strings into objects.
|
||||
|
||||
export interface TaskTag extends Models.Document {
|
||||
@@ -89,11 +90,30 @@ export const useTaskStore = defineStore('tasks', {
|
||||
console.error('Failed to fetch skill tags', error);
|
||||
}
|
||||
},
|
||||
async deleteTask(task: Task | string) {
|
||||
const docId = typeof task === 'string' ? task : task.$id;
|
||||
if (docId === undefined) {
|
||||
console.error('No document ID provided to deleteTask!');
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const response = await databases.deleteDocument(
|
||||
AppwriteIds.databaseId,
|
||||
AppwriteIds.collectionIdTask,
|
||||
docId
|
||||
);
|
||||
this.tasks = this.tasks.filter((task) => docId !== task.$id);
|
||||
} catch (error) {
|
||||
// Need some better error handling, here.
|
||||
console.error('Failed to delete task:', error);
|
||||
}
|
||||
},
|
||||
async addTask(task: Task) {
|
||||
const newTask = <Models.Document>{ ...task };
|
||||
newTask.required_skills = task.required_skills.map((s) => s['$id']);
|
||||
newTask.tags = task.tags.map((s) => s['$id']);
|
||||
newTask.depends_on = task.depends_on.map((d) => d['$id']);
|
||||
newTask.boat = task.boat?.$id;
|
||||
try {
|
||||
const response = await databases.createDocument(
|
||||
AppwriteIds.databaseId,
|
||||
|
||||
Reference in New Issue
Block a user