aboutsummaryrefslogtreecommitdiff
path: root/src/services/MomentServices.ts
diff options
context:
space:
mode:
authorAshm Walia <40498934+ashmgarv@users.noreply.github.com>2021-01-12 15:38:21 -0800
committerGitHub <noreply@github.com>2021-01-12 18:38:21 -0500
commitd495bff07b50c47e842dc2c139922d56c87f5c9b (patch)
treec6f592fa72a6158981fef2feba1b3dca5ff6cc2a /src/services/MomentServices.ts
parentc758389ad2ebe98196d4618ec08dbf2b24d95bfa (diff)
[TMA 491 Frontend] Revamp onboarding (#173)
* First commit, arrow excluded * Done from my side * Some small nitpicks * exclude tsconfig * Show profile screen after onboarding * Update string * Small fix * small cosmetic
Diffstat (limited to 'src/services/MomentServices.ts')
-rw-r--r--src/services/MomentServices.ts52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/services/MomentServices.ts b/src/services/MomentServices.ts
index 96643bc3..91ecf712 100644
--- a/src/services/MomentServices.ts
+++ b/src/services/MomentServices.ts
@@ -2,6 +2,7 @@ import AsyncStorage from '@react-native-community/async-storage';
import {Alert} from 'react-native';
import {COMMENTS_ENDPOINT, MOMENTS_ENDPOINT} from '../constants';
import {MomentType} from '../types';
+import {checkImageUploadStatus} from '../utils';
//Get all comments for a moment
export const getMomentComments = async (
@@ -97,6 +98,57 @@ export const getMomentCommentsCount = async (
}
};
+export const postMoment: (
+ fileName: string,
+ uri: string,
+ caption: string,
+ category: string,
+ userId: string,
+) => Promise<number | undefined> = async (
+ fileName,
+ uri,
+ caption,
+ category,
+ userId,
+) => {
+ try {
+ const request = new FormData();
+ //Manipulating filename to end with .jpg instead of .heic
+ if (fileName.endsWith('.heic') || fileName.endsWith('.HEIC')) {
+ fileName = fileName.split('.')[0] + '.jpg';
+ }
+ request.append('image', {
+ uri: uri,
+ name: fileName,
+ type: 'image/jpg',
+ });
+ request.append('moment', category);
+ request.append('user_id', userId);
+ request.append('captions', JSON.stringify({image: caption}));
+ const token = await AsyncStorage.getItem('token');
+ let response = await fetch(MOMENTS_ENDPOINT, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'multipart/form-data',
+ Authorization: 'Token ' + token,
+ },
+ body: request,
+ });
+ let statusCode = response.status;
+ let data = await response.json();
+ if (statusCode === 200 && checkImageUploadStatus(data['moments'])) {
+ Alert.alert('The picture was uploaded successfully!');
+ return data['profile_completion_stage'];
+ } else {
+ Alert.alert('An error occured while uploading. Please try again!');
+ }
+ } catch (err) {
+ console.log(err);
+ Alert.alert('An error occured during authenticaion. Please login again!');
+ }
+ return undefined;
+};
+
export const loadMoments: (
userId: string,
token: string,