mirror of
https://github.com/mediacms-io/mediacms.git
synced 2025-11-07 07:58:53 -05:00
40 lines
1012 B
TypeScript
40 lines
1012 B
TypeScript
import { users, type User, type InsertUser } from "@shared/schema";
|
|
|
|
// modify the interface with any CRUD methods
|
|
// you might need
|
|
|
|
export interface IStorage {
|
|
getUser(id: number): Promise<User | undefined>;
|
|
getUserByUsername(username: string): Promise<User | undefined>;
|
|
createUser(user: InsertUser): Promise<User>;
|
|
}
|
|
|
|
export class MemStorage implements IStorage {
|
|
private users: Map<number, User>;
|
|
currentId: number;
|
|
|
|
constructor() {
|
|
this.users = new Map();
|
|
this.currentId = 1;
|
|
}
|
|
|
|
async getUser(id: number): Promise<User | undefined> {
|
|
return this.users.get(id);
|
|
}
|
|
|
|
async getUserByUsername(username: string): Promise<User | undefined> {
|
|
return Array.from(this.users.values()).find(
|
|
(user) => user.username === username,
|
|
);
|
|
}
|
|
|
|
async createUser(insertUser: InsertUser): Promise<User> {
|
|
const id = this.currentId++;
|
|
const user: User = { ...insertUser, id };
|
|
this.users.set(id, user);
|
|
return user;
|
|
}
|
|
}
|
|
|
|
export const storage = new MemStorage();
|