From 2f1548fda32c3ba9e53913270394eedfacd55986 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 8 Jan 2019 11:26:41 +0100 Subject: Add notifications in the client --- shared/models/users/user-notification-setting.model.ts | 7 +++---- shared/models/users/user-notification.model.ts | 4 ++++ shared/utils/server/jobs.ts | 3 ++- shared/utils/users/user-notifications.ts | 11 +++++++++++ 4 files changed, 20 insertions(+), 5 deletions(-) (limited to 'shared') diff --git a/shared/models/users/user-notification-setting.model.ts b/shared/models/users/user-notification-setting.model.ts index f580e827e..531e12bba 100644 --- a/shared/models/users/user-notification-setting.model.ts +++ b/shared/models/users/user-notification-setting.model.ts @@ -1,8 +1,7 @@ export enum UserNotificationSettingValue { - NONE = 1, - WEB_NOTIFICATION = 2, - EMAIL = 3, - WEB_NOTIFICATION_AND_EMAIL = 4 + NONE = 0, + WEB = 1 << 0, + EMAIL = 1 << 1 } export interface UserNotificationSetting { diff --git a/shared/models/users/user-notification.model.ts b/shared/models/users/user-notification.model.ts index 9dd4f099f..f41b6f534 100644 --- a/shared/models/users/user-notification.model.ts +++ b/shared/models/users/user-notification.model.ts @@ -2,11 +2,15 @@ export enum UserNotificationType { NEW_VIDEO_FROM_SUBSCRIPTION = 1, NEW_COMMENT_ON_MY_VIDEO = 2, NEW_VIDEO_ABUSE_FOR_MODERATORS = 3, + BLACKLIST_ON_MY_VIDEO = 4, UNBLACKLIST_ON_MY_VIDEO = 5, + MY_VIDEO_PUBLISHED = 6, + MY_VIDEO_IMPORT_SUCCESS = 7, MY_VIDEO_IMPORT_ERROR = 8, + NEW_USER_REGISTRATION = 9, NEW_FOLLOW = 10, COMMENT_MENTION = 11 diff --git a/shared/utils/server/jobs.ts b/shared/utils/server/jobs.ts index 6218c0b66..692b5e24d 100644 --- a/shared/utils/server/jobs.ts +++ b/shared/utils/server/jobs.ts @@ -29,6 +29,7 @@ function getJobsListPaginationAndSort (url: string, accessToken: string, state: } async function waitJobs (serversArg: ServerInfo[] | ServerInfo) { + const pendingJobWait = process.env.NODE_PENDING_JOB_WAIT ? parseInt(process.env.NODE_PENDING_JOB_WAIT, 10) : 2000 let servers: ServerInfo[] if (Array.isArray(serversArg) === false) servers = [ serversArg as ServerInfo ] @@ -62,7 +63,7 @@ async function waitJobs (serversArg: ServerInfo[] | ServerInfo) { // Retry, in case of new jobs were created if (pendingRequests === false) { - await wait(2000) + await wait(pendingJobWait) await Promise.all(tasksBuilder()) } diff --git a/shared/utils/users/user-notifications.ts b/shared/utils/users/user-notifications.ts index 1222899e7..bcbe29fc7 100644 --- a/shared/utils/users/user-notifications.ts +++ b/shared/utils/users/user-notifications.ts @@ -54,6 +54,16 @@ function markAsReadNotifications (url: string, token: string, ids: number[], sta statusCodeExpected }) } +function markAsReadAllNotifications (url: string, token: string, statusCodeExpected = 204) { + const path = '/api/v1/users/me/notifications/read-all' + + return makePostBodyRequest({ + url, + path, + token, + statusCodeExpected + }) +} async function getLastNotification (serverUrl: string, accessToken: string) { const res = await getUserNotifications(serverUrl, accessToken, 0, 1, undefined, '-createdAt') @@ -409,6 +419,7 @@ export { CheckerBaseParams, CheckerType, checkNotification, + markAsReadAllNotifications, checkMyVideoImportIsFinished, checkUserRegistered, checkVideoIsPublished, -- cgit v1.2.3