format codebase with prettier

This commit is contained in:
2026-01-04 16:17:36 +01:00
parent 77f15b6dd1
commit e3f7a778c7
63 changed files with 786 additions and 542 deletions

View File

@@ -1,23 +1,34 @@
import { ChatMessage, Conversation, CreateMessageDTO, GetMessagesOptions } from '@caldav/shared';
import { ChatRepository } from '../../services/interfaces';
import { ChatMessageModel, ConversationModel } from './models';
import {
ChatMessage,
Conversation,
CreateMessageDTO,
GetMessagesOptions,
} from "@caldav/shared";
import { ChatRepository } from "../../services/interfaces";
import { ChatMessageModel, ConversationModel } from "./models";
export class MongoChatRepository implements ChatRepository {
// Conversations
async getConversationsByUser(userId: string): Promise<Conversation[]> {
throw new Error('Not implemented');
throw new Error("Not implemented");
}
async createConversation(userId: string): Promise<Conversation> {
throw new Error('Not implemented');
throw new Error("Not implemented");
}
// Messages (cursor-based pagination)
async getMessages(conversationId: string, options?: GetMessagesOptions): Promise<ChatMessage[]> {
throw new Error('Not implemented');
async getMessages(
conversationId: string,
options?: GetMessagesOptions,
): Promise<ChatMessage[]> {
throw new Error("Not implemented");
}
async createMessage(conversationId: string, message: CreateMessageDTO): Promise<ChatMessage> {
throw new Error('Not implemented');
async createMessage(
conversationId: string,
message: CreateMessageDTO,
): Promise<ChatMessage> {
throw new Error("Not implemented");
}
}

View File

@@ -1,6 +1,6 @@
import { CalendarEvent, CreateEventDTO, UpdateEventDTO } from '@caldav/shared';
import { EventRepository } from '../../services/interfaces';
import { EventModel } from './models';
import { CalendarEvent, CreateEventDTO, UpdateEventDTO } from "@caldav/shared";
import { EventRepository } from "../../services/interfaces";
import { EventModel } from "./models";
export class MongoEventRepository implements EventRepository {
async findById(id: string): Promise<CalendarEvent | null> {
@@ -11,15 +11,19 @@ export class MongoEventRepository implements EventRepository {
async findByUserId(userId: string): Promise<CalendarEvent[]> {
const events = await EventModel.find({ userId }).sort({ startTime: 1 });
return events.map(e => e.toJSON() as unknown as CalendarEvent);
return events.map((e) => e.toJSON() as unknown as CalendarEvent);
}
async findByDateRange(userId: string, startDate: Date, endDate: Date): Promise<CalendarEvent[]> {
async findByDateRange(
userId: string,
startDate: Date,
endDate: Date,
): Promise<CalendarEvent[]> {
const events = await EventModel.find({
userId,
startTime: { $gte: startDate, $lte: endDate }
startTime: { $gte: startDate, $lte: endDate },
}).sort({ startTime: 1 });
return events.map(e => e.toJSON() as unknown as CalendarEvent);
return events.map((e) => e.toJSON() as unknown as CalendarEvent);
}
async create(userId: string, data: CreateEventDTO): Promise<CalendarEvent> {
@@ -28,7 +32,10 @@ export class MongoEventRepository implements EventRepository {
return event.toJSON() as unknown as CalendarEvent;
}
async update(id: string, data: UpdateEventDTO): Promise<CalendarEvent | null> {
async update(
id: string,
data: UpdateEventDTO,
): Promise<CalendarEvent | null> {
const event = await EventModel.findByIdAndUpdate(id, data, { new: true });
if (!event) return null;
return event.toJSON() as unknown as CalendarEvent;

View File

@@ -1,10 +1,10 @@
import { User } from '@caldav/shared';
import { UserRepository, CreateUserData } from '../../services/interfaces';
import { UserModel } from './models';
import { User } from "@caldav/shared";
import { UserRepository, CreateUserData } from "../../services/interfaces";
import { UserModel } from "./models";
export class MongoUserRepository implements UserRepository {
async findById(id: string): Promise<User | null> {
throw new Error('Not implemented');
throw new Error("Not implemented");
}
async findByEmail(email: string): Promise<User | null> {

View File

@@ -1,3 +1,3 @@
export * from './MongoUserRepository';
export * from './MongoEventRepository';
export * from './MongoChatRepository';
export * from "./MongoUserRepository";
export * from "./MongoEventRepository";
export * from "./MongoChatRepository";

View File

@@ -1,11 +1,18 @@
import mongoose, { Schema, Document, Model } from 'mongoose';
import { ChatMessage, Conversation, CreateEventDTO, UpdateEventDTO, ProposedEventChange } from '@caldav/shared';
import { IdVirtual } from './types';
import mongoose, { Schema, Document, Model } from "mongoose";
import {
ChatMessage,
Conversation,
CreateEventDTO,
UpdateEventDTO,
ProposedEventChange,
} from "@caldav/shared";
import { IdVirtual } from "./types";
export interface ChatMessageDocument extends Omit<ChatMessage, 'id'>, Document {
export interface ChatMessageDocument extends Omit<ChatMessage, "id">, Document {
toJSON(): ChatMessage;
}
export interface ConversationDocument extends Omit<Conversation, 'id'>, Document {
export interface ConversationDocument
extends Omit<Conversation, "id">, Document {
toJSON(): Conversation;
}
@@ -19,7 +26,7 @@ const EventSchema = new Schema<CreateEventDTO>(
isRecurring: { type: Boolean },
recurrenceRule: { type: String },
},
{ _id: false }
{ _id: false },
);
const UpdatesSchema = new Schema<UpdateEventDTO>(
@@ -32,20 +39,30 @@ const UpdatesSchema = new Schema<UpdateEventDTO>(
isRecurring: { type: Boolean },
recurrenceRule: { type: String },
},
{ _id: false }
{ _id: false },
);
const ProposedChangeSchema = new Schema<ProposedEventChange>(
{
action: { type: String, enum: ['create', 'update', 'delete'], required: true },
action: {
type: String,
enum: ["create", "update", "delete"],
required: true,
},
eventId: { type: String },
event: { type: EventSchema },
updates: { type: UpdatesSchema },
},
{ _id: false }
{ _id: false },
);
const ChatMessageSchema = new Schema<ChatMessageDocument, Model<ChatMessageDocument, {}, {}, IdVirtual>, {}, {}, IdVirtual>(
const ChatMessageSchema = new Schema<
ChatMessageDocument,
Model<ChatMessageDocument, {}, {}, IdVirtual>,
{},
{},
IdVirtual
>(
{
conversationId: {
type: String,
@@ -53,7 +70,7 @@ const ChatMessageSchema = new Schema<ChatMessageDocument, Model<ChatMessageDocum
},
sender: {
type: String,
enum: ['user', 'assistant'],
enum: ["user", "assistant"],
required: true,
},
content: {
@@ -81,10 +98,16 @@ const ChatMessageSchema = new Schema<ChatMessageDocument, Model<ChatMessageDocum
return ret;
},
},
}
},
);
const ConversationSchema = new Schema<ConversationDocument, Model<ConversationDocument, {}, {}, IdVirtual>, {}, {}, IdVirtual>(
const ConversationSchema = new Schema<
ConversationDocument,
Model<ConversationDocument, {}, {}, IdVirtual>,
{},
{},
IdVirtual
>(
{
userId: {
type: String,
@@ -109,8 +132,14 @@ const ConversationSchema = new Schema<ConversationDocument, Model<ConversationDo
return ret;
},
},
}
},
);
export const ChatMessageModel = mongoose.model<ChatMessageDocument>('ChatMessage', ChatMessageSchema);
export const ConversationModel = mongoose.model<ConversationDocument>('Conversation', ConversationSchema);
export const ChatMessageModel = mongoose.model<ChatMessageDocument>(
"ChatMessage",
ChatMessageSchema,
);
export const ConversationModel = mongoose.model<ConversationDocument>(
"Conversation",
ConversationSchema,
);

View File

@@ -1,12 +1,18 @@
import mongoose, { Schema, Document, Model } from 'mongoose';
import { CalendarEvent } from '@caldav/shared';
import { IdVirtual } from './types';
import mongoose, { Schema, Document, Model } from "mongoose";
import { CalendarEvent } from "@caldav/shared";
import { IdVirtual } from "./types";
export interface EventDocument extends Omit<CalendarEvent, 'id'>, Document {
export interface EventDocument extends Omit<CalendarEvent, "id">, Document {
toJSON(): CalendarEvent;
}
const EventSchema = new Schema<EventDocument, Model<EventDocument, {}, {}, IdVirtual>, {}, {}, IdVirtual>(
const EventSchema = new Schema<
EventDocument,
Model<EventDocument, {}, {}, IdVirtual>,
{},
{},
IdVirtual
>(
{
userId: {
type: String,
@@ -58,9 +64,9 @@ const EventSchema = new Schema<EventDocument, Model<EventDocument, {}, {}, IdVir
return ret;
},
},
}
},
);
EventSchema.index({ userId: 1, startTime: 1, endTime: 1 });
export const EventModel = mongoose.model<EventDocument>('Event', EventSchema);
export const EventModel = mongoose.model<EventDocument>("Event", EventSchema);

View File

@@ -1,12 +1,18 @@
import mongoose, { Schema, Document, Model } from 'mongoose';
import { User } from '@caldav/shared';
import { IdVirtual } from './types';
import mongoose, { Schema, Document, Model } from "mongoose";
import { User } from "@caldav/shared";
import { IdVirtual } from "./types";
export interface UserDocument extends Omit<User, 'id'>, Document {
export interface UserDocument extends Omit<User, "id">, Document {
toJSON(): User;
}
const UserSchema = new Schema<UserDocument, Model<UserDocument, {}, {}, IdVirtual>, {}, {}, IdVirtual>(
const UserSchema = new Schema<
UserDocument,
Model<UserDocument, {}, {}, IdVirtual>,
{},
{},
IdVirtual
>(
{
email: {
type: String,
@@ -43,7 +49,7 @@ const UserSchema = new Schema<UserDocument, Model<UserDocument, {}, {}, IdVirtua
return ret;
},
},
}
},
);
export const UserModel = mongoose.model<UserDocument>('User', UserSchema);
export const UserModel = mongoose.model<UserDocument>("User", UserSchema);

View File

@@ -1,3 +1,3 @@
export * from './UserModel';
export * from './EventModel';
export * from './ChatModel';
export * from "./UserModel";
export * from "./EventModel";
export * from "./ChatModel";