diff options
author | Ivan Chen <ivan@tagg.id> | 2021-06-11 17:01:43 -0400 |
---|---|---|
committer | Ivan Chen <ivan@tagg.id> | 2021-06-11 17:01:43 -0400 |
commit | bcfbaf00f60b65ab5f8c38ff8766644a2496bed1 (patch) | |
tree | af2fd669cf1f4cd427e832a39ac9deb2cd7a1430 /src/services/NotificationService.ts | |
parent | 47b087816844473be858adf766b2f538ecf6d0aa (diff) | |
parent | 17d3f1255bd7692772b675b09685a92b305e8d9b (diff) |
Merge branch 'master' into tma904-moment-comment-revamp
# Conflicts:
# src/components/moments/MomentPost.tsx
# src/components/moments/MomentPostContent.tsx
# src/services/MomentService.ts
Diffstat (limited to 'src/services/NotificationService.ts')
-rw-r--r-- | src/services/NotificationService.ts | 63 |
1 files changed, 62 insertions, 1 deletions
diff --git a/src/services/NotificationService.ts b/src/services/NotificationService.ts index c5c843f5..ccaa9135 100644 --- a/src/services/NotificationService.ts +++ b/src/services/NotificationService.ts @@ -1,5 +1,9 @@ import AsyncStorage from '@react-native-community/async-storage'; -import {NOTIFICATIONS_ENDPOINT} from '../constants'; +import { + NOTIFICATIONS_ENDPOINT, + NOTIFICATIONS_COUNT_ENDPOINT, + NOTIFICATIONS_DATE, +} from '../constants'; import {NotificationType} from '../types'; export const getNotificationsData: () => Promise<NotificationType[]> = @@ -29,3 +33,60 @@ export const getNotificationsData: () => Promise<NotificationType[]> = return []; } }; + +export const getNotificationsUnreadCount = async () => { + try { + const token = await AsyncStorage.getItem('token'); + const response = await fetch(NOTIFICATIONS_COUNT_ENDPOINT, { + method: 'GET', + headers: { + Authorization: 'Token ' + token, + }, + }); + if (response.status === 200) { + const data: any = await response.json(); + const typedData: { + CMT?: number; + FRD_REQ?: number; + P_VIEW?: number; + MOM_TAG?: number; + } = {}; + if (data.CMT) { + typedData.CMT = data.CMT; + } + if (data.FRD_REQ && data.FRD_REQ > 0) { + typedData.FRD_REQ = data.FRD_REQ; + } + if (data.P_VIEW && data.P_VIEW > 0) { + typedData.P_VIEW = data.P_VIEW; + } + if (data.MOM_TAG && data.MOM_TAG > 0) { + typedData.MOM_TAG = data.MOM_TAG; + } + return typedData; + } + } catch (error) { + console.log('Unable to fetch notifications'); + } + return undefined; +}; + +export const setNotificationsReadDate: () => Promise<boolean> = async () => { + try { + const token = await AsyncStorage.getItem('token'); + const response = await fetch(NOTIFICATIONS_DATE, { + method: 'POST', + headers: { + Authorization: 'Token ' + token, + }, + }); + if (response.status === 204) { + return true; + } else { + return false; + } + } catch (error) { + console.log('Unable to fetch notifications'); + return false; + } +}; |