Skip to content

Commit f7979a1

Browse files
author
harshitnagar031
committed
Restored to '01b7a257605a5cae7f4ba3f6b5544810d9b766cd'
Replit-Restored-To:01b7a257605a5cae7f4ba3f6b5544810d9b766cd
1 parent c53434b commit f7979a1

File tree

2 files changed

+42
-56
lines changed

2 files changed

+42
-56
lines changed

server/db.ts

-15
This file was deleted.

server/storage.ts

+42-41
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
import { tasks, categories, type Task, type InsertTask, type Category, type InsertCategory } from "@shared/schema";
2-
import { db } from "./db";
3-
import { eq } from "drizzle-orm";
42

53
export interface IStorage {
64
// Task operations
@@ -16,75 +14,78 @@ export interface IStorage {
1614
deleteCategory(id: number): Promise<void>;
1715
}
1816

19-
export class DatabaseStorage implements IStorage {
17+
export class MemStorage implements IStorage {
18+
private tasks: Map<number, Task>;
19+
private categories: Map<number, Category>;
20+
private taskId: number;
21+
private categoryId: number;
22+
23+
constructor() {
24+
this.tasks = new Map();
25+
this.categories = new Map();
26+
this.taskId = 1;
27+
this.categoryId = 1;
28+
29+
// Add default categories
30+
this.createCategory({ name: "Work", color: "#0066FF" });
31+
this.createCategory({ name: "Personal", color: "#FF6B6B" });
32+
this.createCategory({ name: "Shopping", color: "#00CC99" });
33+
}
34+
2035
async getTasks(): Promise<Task[]> {
21-
return await db.select().from(tasks);
36+
return Array.from(this.tasks.values());
2237
}
2338

2439
async getTask(id: number): Promise<Task | undefined> {
25-
const [task] = await db.select().from(tasks).where(eq(tasks.id, id));
26-
return task;
40+
return this.tasks.get(id);
2741
}
2842

2943
async createTask(insertTask: InsertTask): Promise<Task> {
30-
const [task] = await db
31-
.insert(tasks)
32-
.values({
33-
...insertTask,
34-
dueDate: insertTask.dueDate ? new Date(insertTask.dueDate) : null,
35-
})
36-
.returning();
44+
const id = this.taskId++;
45+
const task: Task = { ...insertTask, id };
46+
this.tasks.set(id, task);
3747
return task;
3848
}
3949

4050
async updateTask(id: number, updates: Partial<InsertTask>): Promise<Task> {
41-
const [task] = await db
42-
.update(tasks)
43-
.set({
44-
...updates,
45-
dueDate: updates.dueDate ? new Date(updates.dueDate) : undefined,
46-
})
47-
.where(eq(tasks.id, id))
48-
.returning();
51+
const task = this.tasks.get(id);
4952
if (!task) throw new Error("Task not found");
50-
return task;
53+
54+
const updatedTask = { ...task, ...updates };
55+
this.tasks.set(id, updatedTask);
56+
return updatedTask;
5157
}
5258

5359
async deleteTask(id: number): Promise<void> {
54-
await db.delete(tasks).where(eq(tasks.id, id));
60+
this.tasks.delete(id);
5561
}
5662

5763
async getCategories(): Promise<Category[]> {
58-
return await db.select().from(categories);
64+
return Array.from(this.categories.values());
5965
}
6066

6167
async createCategory(insertCategory: InsertCategory): Promise<Category> {
62-
const [category] = await db
63-
.insert(categories)
64-
.values(insertCategory)
65-
.returning();
68+
const id = this.categoryId++;
69+
const category: Category = { ...insertCategory, id };
70+
this.categories.set(id, category);
6671
return category;
6772
}
6873

6974
async deleteCategory(id: number): Promise<void> {
70-
const [category] = await db
71-
.select()
72-
.from(categories)
73-
.where(eq(categories.id, id));
74-
75+
const category = this.categories.get(id);
7576
if (!category) {
7677
throw new Error("Category not found");
7778
}
7879

79-
// First update all tasks in this category to use "general"
80-
await db
81-
.update(tasks)
82-
.set({ category: "general" })
83-
.where(eq(tasks.category, category.name));
80+
// Update all tasks that use this category to use "general" instead
81+
for (const task of this.tasks.values()) {
82+
if (task.category === category.name) {
83+
await this.updateTask(task.id, { category: "general" });
84+
}
85+
}
8486

85-
// Then delete the category
86-
await db.delete(categories).where(eq(categories.id, id));
87+
this.categories.delete(id);
8788
}
8889
}
8990

90-
export const storage = new DatabaseStorage();
91+
export const storage = new MemStorage();

0 commit comments

Comments
 (0)