aboutsummaryrefslogtreecommitdiff
path: root/src/services
diff options
context:
space:
mode:
authorBrian Kim <brian@tagg.id>2021-06-07 15:58:08 +0900
committerBrian Kim <brian@tagg.id>2021-06-07 15:58:08 +0900
commit19630f8bc3b4b53244007e08436c5be67a4d7ef1 (patch)
tree7a75031564636aed54adf15df11d02f8785b99ed /src/services
parente649aefdb822e0854f0f6e389a7b9c56ed5623e6 (diff)
Basic integration with API
Diffstat (limited to 'src/services')
-rw-r--r--src/services/NotificationService.ts99
1 files changed, 73 insertions, 26 deletions
diff --git a/src/services/NotificationService.ts b/src/services/NotificationService.ts
index c5c843f5..92f1cdd1 100644
--- a/src/services/NotificationService.ts
+++ b/src/services/NotificationService.ts
@@ -1,31 +1,78 @@
import AsyncStorage from '@react-native-community/async-storage';
-import {NOTIFICATIONS_ENDPOINT} from '../constants';
+import {
+ NOTIFICATIONS_ENDPOINT,
+ NOTIFICATIONS_COUNT_ENDPOINT,
+} from '../constants';
import {NotificationType} from '../types';
-export const getNotificationsData: () => Promise<NotificationType[]> =
- async () => {
- try {
- const token = await AsyncStorage.getItem('token');
- const response = await fetch(NOTIFICATIONS_ENDPOINT, {
- method: 'GET',
- headers: {
- Authorization: 'Token ' + token,
- },
- });
- if (response.status === 200) {
- const data: any[] = await response.json();
- let typedData: NotificationType[] = [];
- for (const o of data) {
- typedData.push({
- ...o.notification,
- unread: false,
- });
- }
- return typedData;
+export const getNotificationsData: () => Promise<
+ NotificationType[]
+> = async () => {
+ try {
+ const token = await AsyncStorage.getItem('token');
+ const response = await fetch(NOTIFICATIONS_ENDPOINT, {
+ method: 'GET',
+ headers: {
+ Authorization: 'Token ' + token,
+ },
+ });
+ if (response.status === 200) {
+ const data: any[] = await response.json();
+ let typedData: NotificationType[] = [];
+ for (const o of data) {
+ typedData.push({
+ ...o.notification,
+ unread: false,
+ });
}
- return [];
- } catch (error) {
- console.log('Unable to fetch notifications');
- return [];
+ return typedData;
}
- };
+ return [];
+ } catch (error) {
+ console.log('Unable to fetch notifications');
+ return [];
+ }
+};
+
+export const getNotificationsUnreadCount: () => Promise<{
+ CMT?: number;
+ FRD_REQ?: number;
+ P_VIEW?: number;
+ MOM_TAG?: number;
+}> = 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 && data.CMT > 0) {
+ 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;
+ }
+ return [];
+ } catch (error) {
+ console.log('Unable to fetch notifications');
+ return [];
+ }
+};