import AsyncStorage from '@react-native-community/async-storage'; import { ALL_USERS_ENDPOINT, DISCOVER_ENDPOINT, SEARCH_BUTTONS_ENDPOPINT, } from '../constants'; import {EMPTY_PROFILE_PREVIEW_LIST} from '../store/initialStates'; import { ExploreSectionType, ProfilePreviewType, SearchCategoryType, } from '../types'; export const getAllTaggUsers = async (token: string) => { try { const response = await fetch(ALL_USERS_ENDPOINT, { method: 'GET', headers: { Authorization: 'Token ' + token, }, }); const status = response.status; if (status === 200) { const response_data = await response.json(); return response_data; } else { console.log( 'Something went wrong! 😭', 'Not able to retrieve tagg users list', ); } } catch (error) { console.log( 'Something went wrong! 😭', 'Not able to retrieve tagg users list', error, ); } }; export const getAllExploreSections = async () => { try { const token = await AsyncStorage.getItem('token'); const response = await fetch(DISCOVER_ENDPOINT, { method: 'GET', headers: { Authorization: 'Token ' + token, }, }); if (response.status !== 200) { return EMPTY_PROFILE_PREVIEW_LIST; } const data = await response.json(); // TODO (if we return to original explore format): get keys from backend API const exploreSections: Record = { 'New to Tagg': data.categories.new_to_tagg, 'People You May Know': data.categories.people_you_may_know, 'Trending on Tagg': data.categories.trending_on_tagg, "Brown '21": data.categories.brown_21, "Brown '22": data.categories.brown_22, "Brown '23": data.categories.brown_23, "Brown '24": data.categories.brown_24, }; return exploreSections; } catch (error) { console.log('Unable to fetch explore data'); } }; export const getDiscoverUsers = async (categoryName: string) => { try { const token = await AsyncStorage.getItem('token'); const url = `${DISCOVER_ENDPOINT}get_users/?category=${categoryName}`; const response = await fetch(url, { method: 'GET', headers: { Authorization: 'Token ' + token, }, }); if (response.status !== 200) { return undefined; } const users: ProfilePreviewType[] = await response.json(); return users; } catch (error) { console.log('Error fetching SP user data'); console.log(error); return undefined; } }; export const getSuggestedSearchBubbleSuggestions = async () => { try { const token = await AsyncStorage.getItem('token'); const response = await fetch(SEARCH_BUTTONS_ENDPOPINT, { method: 'GET', headers: { Authorization: 'Token ' + token, }, }); if (response.status !== 200) { return undefined; } const data: SearchCategoryType[] = await response.json(); return data; } catch (error) { console.log('Error fetching suggested search bubble suggestions'); console.log(error); return undefined; } };