Fixed: review add - send add request to api

This commit is contained in:
Filip Rojek 2024-05-15 01:35:52 +02:00
parent a57a059c2a
commit 986aca3931
8 changed files with 20 additions and 4 deletions

View File

@ -18,6 +18,7 @@ new Docs(
export async function add_post(req: Request, res: Response) {
try {
const data: IReview = req.body;
data.user_id = res.locals.user._id
const review = new Review(data);
await review.save();
res.status(201).json(Log.info(201, "review was added", review));

View File

@ -28,6 +28,14 @@ const schema = new Schema<IReview | any>(
type: Boolean,
required: true,
},
beer_id: {
type: String,
required: true,
},
user_id: {
type: String,
required: true,
}
},
{
timestamps: true,

View File

@ -20,6 +20,7 @@ export const add = yup.object({
packaging: yup.number().min(1).max(5).required(),
sourness: yup.boolean().required(),
would_again: yup.boolean().required(),
user_id: yup.string().notRequired()
});
export interface IReview extends yup.InferType<typeof add>, mongooseAddition {}
export const addExam: IReview = {

1
frontend/.gitignore vendored
View File

@ -37,3 +37,4 @@ yarn-error.*
.env
.vscode/
*.swp

View File

@ -67,7 +67,7 @@ export default function TabLayout() {
options={{ href: null, title: "Add beer" }}
/>
<Tabs.Screen
name="review/add"
name="review/add/[beer_id]"
options={{ href: null, title: "Add review" }}
/>
</Tabs>

View File

@ -87,7 +87,7 @@ export default function Tab() {
title="Add review"
color={colors.gold}
onPress={() => {
router.push(`/review/${item._id}`);
router.push(`/review/add/${item._id}`);
}}
/>
</View>

View File

@ -7,9 +7,11 @@ import * as ImagePicker from "expo-image-picker";
import DropDownPicker from "react-native-dropdown-picker";
const DropdownTheme = require("@components/DropdownTheme");
import { Platform } from "react-native";
import { useLocalSearchParams } from "expo-router";
export default function reviewAdd() {
// States for each dropdown
const routeParams = useLocalSearchParams();
const [openFoam, setOpenFoam] = useState(false);
const [openBitterSweetness, setOpenBitterSweetness] = useState(false);
const [openTaste, setOpenTaste] = useState(false);
@ -311,6 +313,7 @@ export default function reviewAdd() {
credentials: "include",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
beer_id: routeParams.beer_id,
foam: itemFoam,
bitter_sweetness: itemBitter_sweetness,
taste: itemTaste,
@ -322,10 +325,12 @@ export default function reviewAdd() {
const res = await req.json();
if (res.code == 201 && res.data._id) {
window.location.href = `/review/${res.data._id}`;
// window.location.href = `/review/${res.data._id}`;
// TODO: use react router for redirect
alert("Review was added!");
} else {
alert(
"Beer was not added successfully. Please check your data and try again.",
"Review was not added successfully. Please check your data and try again.",
);
}
}