Skip to content

Commit ccc10ca

Browse files
danctilabenjaspet
andauthored
feat: S3 frontend integration + review flow updates (#106)
Co-authored-by: Ben Petrillo <benpetrillo.bp@gmail.com>
1 parent 70fe88f commit ccc10ca

File tree

17 files changed

+676
-119
lines changed

17 files changed

+676
-119
lines changed

frontend/api/auth.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { makeRequest } from "@/api/base";
22
import { LoginRequestBody, RegisterRequestBody } from "@/types/auth";
33

44
export async function getUserById(userId: string) {
5-
return await makeRequest(`/api/v1/users/${userId}`, "GET");
5+
return await makeRequest(`/api/v1/user/${userId}`, "GET");
66
}
77

88
export async function login(body: LoginRequestBody) {

frontend/api/review.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,12 @@ export interface ReviewData {
1717
_id: string;
1818
pfp?: string;
1919
username: string;
20+
name: string;
2021
};
22+
menuItem: string;
23+
restaurantId: string;
24+
menuItemName: string;
25+
restaurantName: string;
2126
}
2227

2328
export async function createReview(reviewData: ReviewData) {

frontend/api/reviews.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ export const getReviews = async (page: number = 1, limit: number = 20): Promise<
55
return await makeRequest(`/api/v1/review?page=${page}&limit=${limit}`, "GET");
66
};
77

8-
export const getReviewById = async (id: string, userId: string): Promise<TReview> => {
9-
return await makeRequest(`/api/v1/review/${id}?userId=${userId}`, "GET");
8+
export const getReviewById = async (id: string): Promise<TReview> => {
9+
return await makeRequest(`/api/v1/review/${id}`, "GET");
1010
};
1111

1212
export const getFriendsReviews = async (id: string): Promise<TReview[]> => {

frontend/app.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
"NSTemporaryExceptionAllowsInsecureHTTPLoads": true
2222
}
2323
}
24-
}
24+
},
25+
"NSPhotoLibraryUsageDescription": "This app requires access to your photo library to upload images."
2526
},
2627
"entitlements": {
2728
"aps-environment": "development"
@@ -34,7 +35,7 @@
3435
"foregroundImage": "./assets/splash-icon.png",
3536
"backgroundColor": "#ffffff"
3637
},
37-
"permissions": ["ACCESS_COARSE_LOCATION", "ACCESS_FINE_LOCATION"]
38+
"permissions": ["ACCESS_COARSE_LOCATION", "ACCESS_FINE_LOCATION", "READ_EXTERNAL_STORAGE"]
3839
},
3940
"web": {
4041
"bundler": "metro",

frontend/app/(menuItem)/[id].tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ export default function Route() {
101101
restaurantId={menuItem?.restaurantID || ""}
102102
menuItemName={menuItem?.name || ""}
103103
dishImageUrl={menuItem?.picture || ""}
104+
menuItemId={menuItem?.id || ""}
104105
/>
105106
</ThemedView>
106107
</ThemedView>

frontend/app/(review)/[id].tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ export default function Route() {
8383

8484
useEffect(() => {
8585
if (!user) return;
86-
getReviewById(id, user.id).then((res) => {
86+
getReviewById(id).then((res) => {
8787
setReview(res);
8888
if (res.like) {
8989
setLikeState(LikeState.LIKED);
@@ -241,6 +241,12 @@ export default function Route() {
241241
))}
242242
</ScrollView>
243243

244+
{review.picture && (
245+
<ThemedView style={styles.imageContainer}>
246+
<Image source={{ uri: review.picture }} style={styles.reviewImage} />
247+
</ThemedView>
248+
)}
249+
244250
{/* Action Bar */}
245251
<View style={styles.actionBar}>
246252
<View style={styles.voteContainer}>

frontend/app/(tabs)/profile/profile.tsx

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -218,24 +218,26 @@ const ProfileScreen = () => {
218218
value={searchText}
219219
onChangeText={(text) => setSearchText(text)}
220220
/>
221-
<ThemedView style={{ gap: 12, marginTop: 12 }}>
221+
<ThemedView style={{ gap: 12, marginTop: 12, marginBottom: 64 }}>
222222
{userReviews &&
223-
userReviews.map((review) => (
224-
<ReviewPreview
225-
reviewId={review._id}
226-
key={review._id}
227-
likes={review.likes}
228-
plateName={review.menuItemName}
229-
restaurantName={review.restaurantName}
230-
tags={[]}
231-
rating={review.rating.overall}
232-
content={review.content}
233-
authorId={user.id}
234-
authorName={user.name}
235-
authorUsername={user.username}
236-
authorAvatar={user.profile_picture || DEFAULT_PROFILE_PIC}
237-
/>
238-
))}
223+
userReviews
224+
.reverse()
225+
.map((review) => (
226+
<ReviewPreview
227+
reviewId={review._id}
228+
key={review._id}
229+
likes={review.likes}
230+
plateName={review.menuItemName}
231+
restaurantName={review.restaurantName}
232+
tags={[]}
233+
rating={review.rating.overall}
234+
content={review.content}
235+
authorId={user.id}
236+
authorName={user.name}
237+
authorUsername={user.username}
238+
authorAvatar={user.profile_picture || DEFAULT_PROFILE_PIC}
239+
/>
240+
))}
239241
</ThemedView>
240242
</ThemedView>
241243
</ThemedView>

frontend/app/MenuItemView.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ export default function MenuItemView() {
160160
onClose={() => setIsReviewModalVisible(false)}
161161
restaurantId="pad-thai-kitchen"
162162
menuItemName="Pad Thai"
163+
menuItemId={""}
163164
/>
164165
</>
165166
);

frontend/bun.lockb

815 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)