aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/screens/onboarding/OnboardingStepThree.tsx38
-rw-r--r--src/screens/profile/EditProfile.tsx36
-rw-r--r--src/services/UserProfileService.ts29
3 files changed, 44 insertions, 59 deletions
diff --git a/src/screens/onboarding/OnboardingStepThree.tsx b/src/screens/onboarding/OnboardingStepThree.tsx
index f22d720f..6d379b5e 100644
--- a/src/screens/onboarding/OnboardingStepThree.tsx
+++ b/src/screens/onboarding/OnboardingStepThree.tsx
@@ -37,6 +37,7 @@ import {
ERROR_UPLOAD_SMALL_PROFILE_PIC,
} from '../../constants/strings';
import {OnboardingStackParams} from '../../routes/onboarding';
+import {patchEditProfile} from '../../services';
import {BackgroundGradientType} from '../../types';
import {normalize, SCREEN_HEIGHT, SCREEN_WIDTH} from '../../utils';
@@ -213,39 +214,16 @@ const OnboardingStepThree: React.FC<OnboardingStepThreeProps> = ({
return;
}
- const endpoint = EDIT_PROFILE_ENDPOINT + `${userId}/`;
- try {
- const token = await AsyncStorage.getItem('token');
- let response = await fetch(endpoint, {
- method: 'PATCH',
- headers: {
- 'Content-Type': 'multipart/form-data',
- Authorization: 'Token ' + token,
- },
- body: request,
- });
- let statusCode = response.status;
- let data = await response.json();
- if (statusCode === 200) {
+ patchEditProfile(request, userId)
+ .then((_) =>
navigation.navigate('InvitationCodeVerification', {
userId: route.params.userId,
username: username,
- });
- } else if (statusCode === 400) {
- Alert.alert(
- 'Profile update failed. 😔',
- data.error || 'Something went wrong! 😭',
- );
- } else {
- Alert.alert(ERROR_SOMETHING_WENT_WRONG_REFRESH);
- }
- } catch (error) {
- Alert.alert(ERROR_PROFILE_CREATION_SHORT, ERROR_DOUBLE_CHECK_CONNECTION);
- return {
- name: 'Profile creation error',
- description: error,
- };
- }
+ }),
+ )
+ .catch((error) => {
+ Alert.alert(error);
+ });
};
return (
diff --git a/src/screens/profile/EditProfile.tsx b/src/screens/profile/EditProfile.tsx
index 56bed11f..fc428ee3 100644
--- a/src/screens/profile/EditProfile.tsx
+++ b/src/screens/profile/EditProfile.tsx
@@ -46,6 +46,7 @@ import {
ERROR_UPLOAD_SMALL_PROFILE_PIC,
} from '../../constants/strings';
import TaggLoadingIndicator from '../../components/common/TaggLoadingIndicator';
+import {patchEditProfile} from '../../services';
type EditProfileNavigationProp = StackNavigationProp<
MainStackParams,
@@ -364,37 +365,14 @@ const EditProfile: React.FC<EditProfileProps> = ({route, navigation}) => {
return;
}
- const endpoint = EDIT_PROFILE_ENDPOINT + `${userId}/`;
- try {
- const token = await AsyncStorage.getItem('token');
- let response = await fetch(endpoint, {
- method: 'PATCH',
- headers: {
- 'Content-Type': 'multipart/form-data',
- Authorization: 'Token ' + token,
- },
- body: request,
- });
- let statusCode = response.status;
- let data = await response.json();
- if (statusCode === 200) {
+ patchEditProfile(request, userId)
+ .then((_) => {
setNeedsUpdate(true);
navigation.pop();
- } else if (statusCode === 400) {
- Alert.alert(
- 'Profile update failed. 😔',
- data.error || 'Something went wrong! 😭',
- );
- } else {
- Alert.alert(ERROR_SOMETHING_WENT_WRONG_REFRESH);
- }
- } catch (error) {
- Alert.alert(ERROR_DOUBLE_CHECK_CONNECTION);
- return {
- name: 'Profile creation error',
- description: error,
- };
- }
+ })
+ .catch((error) => {
+ Alert.alert(error);
+ });
}, [isCustomGender, form, navigation, userId]);
React.useLayoutEffect(() => {
diff --git a/src/services/UserProfileService.ts b/src/services/UserProfileService.ts
index dd77db9f..041dd4c3 100644
--- a/src/services/UserProfileService.ts
+++ b/src/services/UserProfileService.ts
@@ -3,6 +3,7 @@ import moment from 'moment';
import {Alert} from 'react-native';
import RNFetchBlob from 'rn-fetch-blob';
import {
+ EDIT_PROFILE_ENDPOINT,
GET_FB_POSTS_ENDPOINT,
GET_IG_POSTS_ENDPOINT,
GET_TWITTER_POSTS_ENDPOINT,
@@ -356,3 +357,31 @@ export const sendRegister = async (
return undefined;
}
};
+
+export const patchEditProfile = async (form: FormData, userId: string) => {
+ const endpoint = EDIT_PROFILE_ENDPOINT + `${userId}/`;
+ try {
+ const token = await AsyncStorage.getItem('token');
+ let response = await fetch(endpoint, {
+ method: 'PATCH',
+ headers: {
+ 'Content-Type': 'multipart/form-data',
+ Authorization: 'Token ' + token,
+ },
+ body: form,
+ });
+ let statusCode = response.status;
+ if (statusCode === 200) {
+ return true;
+ } else if (statusCode === 400) {
+ let data = await response.json();
+ throw (
+ 'Profile update failed. 😔' + data.error || 'Something went wrong! 😭'
+ );
+ } else {
+ throw ERROR_SOMETHING_WENT_WRONG_REFRESH;
+ }
+ } catch (error) {
+ throw ERROR_DOUBLE_CHECK_CONNECTION;
+ }
+};