//Abstracted common profile api calls out here import {Alert} from 'react-native'; import { PROFILE_INFO_ENDPOINT, AVATAR_PHOTO_ENDPOINT, COVER_PHOTO_ENDPOINT, GET_IG_POSTS_ENDPOINT, } from '../constants'; import AsyncStorage from '@react-native-community/async-storage'; import RNFetchBlob from 'rn-fetch-blob'; export const loadProfileInfo = async ( token: string, userId: string, callback: Function, ) => { try { const response = await fetch(PROFILE_INFO_ENDPOINT + `${userId}/`, { method: 'GET', headers: { Authorization: 'Token ' + token, }, }); const status = response.status; if (status === 200) { const info = await response.json(); let {name, biography, website} = info; callback({name, biography, website}); } } catch (error) { Alert.alert( 'Something went wrong! 😭', "Would you believe me if I told you that I don't know what happened?", ); } }; export const loadAvatar = async ( token: string, userId: string, callback: Function, ) => { try { const response = await RNFetchBlob.config({ fileCache: true, appendExt: 'jpg', }).fetch('GET', AVATAR_PHOTO_ENDPOINT + `${userId}/`, { Authorization: 'Token ' + token, }); const status = response.info().status; if (status === 200) { callback(response.path()); } else { callback(''); } } catch (error) { console.log(error); } }; export const loadCover = async ( token: string, userId: string, callback: Function, ) => { try { let response = await RNFetchBlob.config({ fileCache: true, appendExt: 'jpg', }).fetch('GET', COVER_PHOTO_ENDPOINT + `${userId}/`, { Authorization: 'Token ' + token, }); const status = response.info().status; if (status === 200) { callback(response.path()); } else { callback(''); } } catch (error) { console.log(error); } }; export const loadInstaPosts = async ( token: string, userId: string, callback: Function, ) => { try { const response = await fetch(GET_IG_POSTS_ENDPOINT + `${userId}/`, { method: 'GET', headers: { Authorization: 'Token ' + token, }, }); const status = response.status; if (status === 200) { let ig_posts = await response.json(); callback(ig_posts); } else { callback([]); } } catch (error) { console.log(error); Alert.alert( 'Something went wrong! 😭', "Would you believe me if I told you that I don't know what happened?", ); } }; export const loadRecentlySearchedUsers = async (callback: Function) => { try { const asyncCache = await AsyncStorage.getItem('@recently_searched_users'); asyncCache != null ? callback(JSON.parse(asyncCache)) : null; } catch (e) { console.log(e); } };