-
Notifications
You must be signed in to change notification settings - Fork 2
/
ArriveAlive.js
106 lines (97 loc) · 3.16 KB
/
ArriveAlive.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
import React from 'react';
import {
StyleSheet,
Text,
View,
Button,
Alert,
TouchableHighlight,
Image
} from 'react-native'
// bring in all our style functions from React
import {StackNavigator} from 'react-navigation'
export default class ArriveAlive extends React.Component {
// creates our class and declares it as an extention of the React Component,
// meaning it can do anything that the React Component can do plus what we add below
render() {
const{ navigate } = this.props.navigation;
return (
<View style={styles.container}>
<TouchableHighlight onPress={() => navigate('Profile')}>
<Image
source={require('./assets/arrive-alive.jpg')}
// accesses our local image to be used on our main screen
style={styles.profilePic}
/>
</TouchableHighlight>
<Text style={{fontSize: 30, fontStyle: "italic"}} >Arrive</Text>
<Text style={{fontSize: 30, fontStyle: "italic"}}> Alive </Text>
<Button
onPress={requestUberRide}
title="Request a Ride"
color="#841584"/>
</View>
);
}
}
async function requestUberRide() {
// this should call to Uber's API if it is working properly
var fare_id = await getFareId();
try {
let response = await fetch('https://sandbox-api.uber.com/v1.2/requests', {
method: 'POST',
headers: {
'Authorization': 'Bearer KA.eyJ2ZXJzaW9uIjoyLCJpZCI6InY5VjlCUUtsUi82Y1JIYVRYS2x2QkE9PSIsImV4cGlyZXNfYXQiOjE1MTMwMjg4MTYsInBpcGVsaW5lX2tleV9pZCI6Ik1RPT0iLCJwaXBlbGluZV9pZCI6MX0.PEN3TwRiXVQhmyU0omFZX28jyVuWR7KMoSkoN7L15Ow',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"fare_id": fare_id,
"product_id": "a1111c8c-c720-46c3-8534-2fcdd730040d",
"start_latitude": 37.761492,
"start_longitude": -122.423941,
"end_latitude": 37.775393,
"end_longitude": -122.417546
})
});
let responseJson = await response.json();
console.error(responseJson);
return responseJson;
} catch(error) {
console.error(error);
}
}
async function getFareId() {
try {
let response = await fetch('https://sandbox-api.uber.com/v1.2/requests/estimate', {
method: 'POST',
headers: {
'Authorization': 'Bearer KA.eyJ2ZXJzaW9uIjoyLCJpZCI6InY5VjlCUUtsUi82Y1JIYVRYS2x2QkE9PSIsImV4cGlyZXNfYXQiOjE1MTMwMjg4MTYsInBpcGVsaW5lX2tleV9pZCI6Ik1RPT0iLCJwaXBlbGluZV9pZCI6MX0.PEN3TwRiXVQhmyU0omFZX28jyVuWR7KMoSkoN7L15Ow',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"product_id": "a1111c8c-c720-46c3-8534-2fcdd730040d",
"start_latitude": 37.761492,
"start_longitude": -122.423941,
"end_latitude": 37.775393,
"end_longitude": -122.417546
})
});
let responseJson = await response.json();
return responseJson.fare.fare_id;
} catch(error) {
console.error(error);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: 'skyblue',
alignItems: 'center',
justifyContent: 'center',
},
profilePic: {
width: 200,
height: 200,
borderRadius: 30,
},
});