mirror of
https://gitlab.com/comunic/comunicapiv2
synced 2024-11-21 21:09:22 +00:00
Can delete notifications related to a friendship request
This commit is contained in:
parent
4bf99cb550
commit
9ced519618
@ -53,9 +53,9 @@ export interface NotifBuilder {
|
||||
seen ?: boolean,
|
||||
fromUserID: number,
|
||||
destUserID ?: number,
|
||||
onElemID: number,
|
||||
onElemID ?: number,
|
||||
onElemType: NotifElemType,
|
||||
type: NotifEventType,
|
||||
type ?: NotifEventType,
|
||||
eventVisibility ?: NotifEventVisibility,
|
||||
fromContainerID ?: number,
|
||||
fromContainerType ?: NotifElemType
|
||||
@ -67,9 +67,9 @@ export class Notif implements NotifBuilder {
|
||||
seen ?: boolean;
|
||||
fromUserID: number;
|
||||
destUserID ?: number;
|
||||
onElemID: number;
|
||||
onElemID ?: number;
|
||||
onElemType: NotifElemType;
|
||||
type: NotifEventType;
|
||||
type ?: NotifEventType;
|
||||
eventVisibility ?: NotifEventVisibility;
|
||||
fromContainerID ?: number;
|
||||
fromContainerType ?: NotifElemType;
|
||||
|
@ -197,6 +197,22 @@ export class NotificationsHelper {
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete notifications
|
||||
*
|
||||
* @param n Notification
|
||||
*/
|
||||
public static async Delete(n: Notif) {
|
||||
// Delete a specific notification
|
||||
if(n.hasId)
|
||||
throw new Error("Please implement notification deletion with known ID!");
|
||||
|
||||
// Delete wider range of notifications
|
||||
else
|
||||
await DatabaseHelper.DeleteRows(NOTIFICATIONS_TABLE, this.NotifToDB(n, false))
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Count the number of unread notifications of a user
|
||||
*
|
||||
|
@ -32,20 +32,42 @@ export class NotificationsUtils {
|
||||
* Create & push friendship request notification
|
||||
*
|
||||
* @param fromUser Source user ID
|
||||
* @param toUser Destination user ID
|
||||
* @param destUser Destination user ID
|
||||
* @param action The kind of action
|
||||
*/
|
||||
public static async CreateFriendsNotifications(fromUser: number, toUser: number, action: NotifEventType) {
|
||||
// TODO : Delete all the previous notifications
|
||||
public static async CreateFriendsNotifications(fromUser: number, destUser: number, action: NotifEventType) {
|
||||
await this.DeleteNotificationsFrienshipRequest(fromUser, destUser);
|
||||
|
||||
// PUsh the notification
|
||||
// Push the notification
|
||||
await NotificationsHelper.Push(new Notif({
|
||||
fromUserID: fromUser,
|
||||
destUserID: toUser,
|
||||
destUserID: destUser,
|
||||
onElemID: fromUser, // Same as fromUser
|
||||
onElemType: NotifElemType.FRIENDSHIP_REQUEST,
|
||||
type: action
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Delete all the notifications related to a friendship request between two users
|
||||
*
|
||||
* @param userOne First user
|
||||
* @param userTwo Second user
|
||||
*/
|
||||
public static async DeleteNotificationsFrienshipRequest(userOne: number, userTwo: number) {
|
||||
|
||||
// Delete notifications in two ways
|
||||
await NotificationsHelper.Delete(new Notif({
|
||||
onElemType: NotifElemType.FRIENDSHIP_REQUEST,
|
||||
destUserID: userOne,
|
||||
fromUserID: userTwo,
|
||||
}));
|
||||
|
||||
await NotificationsHelper.Delete(new Notif({
|
||||
onElemType: NotifElemType.FRIENDSHIP_REQUEST,
|
||||
destUserID: userTwo,
|
||||
fromUserID: userOne,
|
||||
}));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user