format codebase with prettier
This commit is contained in:
@@ -1 +1 @@
|
||||
export * from './mongo';
|
||||
export * from "./mongo";
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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> {
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export * from './MongoUserRepository';
|
||||
export * from './MongoEventRepository';
|
||||
export * from './MongoChatRepository';
|
||||
export * from "./MongoUserRepository";
|
||||
export * from "./MongoEventRepository";
|
||||
export * from "./MongoChatRepository";
|
||||
|
||||
@@ -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,
|
||||
);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export * from './UserModel';
|
||||
export * from './EventModel';
|
||||
export * from './ChatModel';
|
||||
export * from "./UserModel";
|
||||
export * from "./EventModel";
|
||||
export * from "./ChatModel";
|
||||
|
||||
Reference in New Issue
Block a user