diff options
Diffstat (limited to 'src/services/SuggestedPeopleService.ts')
-rw-r--r-- | src/services/SuggestedPeopleService.ts | 62 |
1 files changed, 61 insertions, 1 deletions
diff --git a/src/services/SuggestedPeopleService.ts b/src/services/SuggestedPeopleService.ts index d0032458..a65b91ef 100644 --- a/src/services/SuggestedPeopleService.ts +++ b/src/services/SuggestedPeopleService.ts @@ -1,11 +1,19 @@ import AsyncStorage from '@react-native-community/async-storage'; import { + ERROR_BADGES_EXCEED_LIMIT, + ERROR_UPLOAD_BADGES, + SUCCESS_BADGES_UPDATE, +} from '../constants/strings'; +import { + ADD_BADGES_ENDPOINT, EDIT_PROFILE_ENDPOINT, SP_MUTUAL_BADGE_HOLDERS_ENDPOINT, SP_UPDATE_PICTURE_ENDPOINT, SP_USERS_ENDPOINT, -} from '../constants'; + UPDATE_BADGES_ENDPOINT, +} from '../constants/api'; import {ProfilePreviewType, SuggestedPeopleDataType} from '../types'; +import { Alert } from 'react-native'; export const sendSuggestedPeopleLinked = async ( userId: string, @@ -119,3 +127,55 @@ export const getMutualBadgeHolders = async () => { return undefined; } }; + +export const addBadgesService = async (selectedBadges: string[]) => { + try { + const token = await AsyncStorage.getItem('token'); + const form = new FormData(); + form.append('badges', JSON.stringify(selectedBadges)); + const response = await fetch(ADD_BADGES_ENDPOINT, { + method: 'POST', + headers: { + 'Content-Type': 'multipart/form-data', + Authorization: 'Token ' + token, + }, + body: form, + }); + if (response.status === 400) { + Alert.alert(ERROR_BADGES_EXCEED_LIMIT); + return false; + } + return true; + } catch (error) { + console.log(error); + Alert.alert(ERROR_UPLOAD_BADGES); + return false; + } +}; + +export const updateBadgesService = async (selectedBadges: string[]) => { + try { + const token = await AsyncStorage.getItem('token'); + const form = new FormData(); + form.append('badges', JSON.stringify(selectedBadges)); + const response = await fetch(UPDATE_BADGES_ENDPOINT, { + method: 'POST', + headers: { + 'Content-Type': 'multipart/form-data', + Authorization: 'Token ' + token, + }, + body: form, + }); + if (response.status === 400) { + Alert.alert(ERROR_BADGES_EXCEED_LIMIT); + return; + } + if (response.status === 200) { + Alert.alert(SUCCESS_BADGES_UPDATE); + return; + } + } catch (error) { + console.log(error); + Alert.alert(ERROR_UPLOAD_BADGES); + } +}; |