Skip to content
Extraits de code Groupes Projets
Valider ea32047a rédigé par Delphine van Rossum's avatar Delphine van Rossum
Parcourir les fichiers

reply to message stay if edited previous mess

parent a76efb05
Aucune branche associée trouvée
Aucune étiquette associée trouvée
2 requêtes de fusion!29Dev,!27reply to message stay if edited previous mess
......@@ -127,10 +127,14 @@ class Message(Base):
user_id = Column(Integer, ForeignKey("users.id"))
session_id = Column(Integer, ForeignKey("sessions.id"))
created_at = Column(DateTime, default=datetime_aware)
reply_to_message_id = Column(Integer, ForeignKey("messages.id"), nullable=True)
reply_to_message_id = Column(
Integer, ForeignKey("messages.message_id"), nullable=True
)
feedbacks = relationship("MessageFeedback", backref="message")
replies = relationship("Message", backref="parent_message", remote_side=[id])
replies = relationship(
"Message", backref="parent_message", remote_side=[message_id]
)
def raw(self):
return [
......
......@@ -154,7 +154,7 @@ class Message(BaseModel):
user_id: int
session_id: int
created_at: NaiveDatetime
reply_to_message_id: int | None = None
reply_to_message_id: str | None = None
feedbacks: list[MessageFeedback]
class Config:
......@@ -184,7 +184,7 @@ class MessageMetadataCreate(BaseModel):
class MessageCreate(BaseModel):
message_id: str | None = None
content: str
reply_to_message_id: int | None = None
reply_to_message_id: str | None = None
metadata: list[MessageMetadataCreate]
class Config:
......
......@@ -41,7 +41,7 @@ export async function createMessageAPI(
id: number,
content: string,
metadata: { message: string; date: number }[],
replyTo: number | null
replyTo: string | null
): Promise<any | null> {
const response = await fetch(`/api/sessions/${id}/messages`, {
method: 'POST',
......
......@@ -16,7 +16,7 @@ export default class Message {
private _edited: boolean = false;
private _versions = writable([] as { content: string; date: Date }[]);
private _feedbacks = writable([] as Feedback[]);
private _replyTo: number;
private _replyTo: string;
public constructor(
id: number,
......@@ -25,7 +25,7 @@ export default class Message {
created_at: Date,
user: User,
session: Session,
replyTo: number
replyTo: string
) {
this._id = id;
this._message_id = message_id;
......@@ -77,7 +77,7 @@ export default class Message {
return `message-${this._message_id}`;
}
get replyTo(): number {
get replyTo(): string {
return this._replyTo;
}
......@@ -85,7 +85,7 @@ export default class Message {
if (this._replyTo == null) return undefined;
return get(this._session.messages).find(
(m) => m instanceof Message && m.id == this._replyTo
(m) => m instanceof Message && m.message_id == this._replyTo
) as Message | undefined;
}
......
......@@ -201,7 +201,7 @@ export default class Session {
sender: User,
content: string,
metadata: { message: string; date: number }[],
replyTo: number | null
replyTo: string | null
): Promise<Message | null> {
const json = await createMessageAPI(fetch, this.id, content, metadata, replyTo);
if (json == null || json.id == null || json.message_id == null) {
......
......@@ -37,7 +37,12 @@
if (message.length == 0) return;
try {
const m = await session.sendMessage(user, message, [...metadata], replyTo?.id || null);
const m = await session.sendMessage(
user,
message,
[...metadata],
replyTo?.message_id || null
);
if (m === null) {
toastAlert($t('chatbox.sendError'));
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter