diff --git a/backend/src/common/middlewares.ml b/backend/src/common/middlewares.ml index 26b818b..548199f 100644 --- a/backend/src/common/middlewares.ml +++ b/backend/src/common/middlewares.ml @@ -30,3 +30,5 @@ let verify_expiration = Rock.Middleware.create ~filter: verify_expiration ~name: "verify expiration" let logger = Opium.Middleware.logger + +let allow_cors = Opium.Middleware.allow_cors () diff --git a/backend/src/handlers/reviews.ml b/backend/src/handlers/reviews.ml index 9ae8864..b6919af 100644 --- a/backend/src/handlers/reviews.ml +++ b/backend/src/handlers/reviews.ml @@ -15,7 +15,8 @@ module Query = struct r.rating, r.description, r.paper, r.soap, r.dryer, r.hotwater, r.clean, r.temperature FROM reviews r INNER JOIN toilets t ON r.toilet = t.id - INNER JOIN users u ON r.author = u.id" + INNER JOIN users u ON r.author = u.id + ORDER BY date DESC" let create = tup3 diff --git a/backend/src/handlers/toilets.ml b/backend/src/handlers/toilets.ml index 5c97760..7b4c345 100644 --- a/backend/src/handlers/toilets.ml +++ b/backend/src/handlers/toilets.ml @@ -31,7 +31,8 @@ module Query = struct FROM toilets t INNER JOIN users u ON t.creator = u.id LEFT JOIN reviews r ON t.id = r.toilet - GROUP BY t.id, u.username" + GROUP BY t.id, u.username + ORDER BY reviews_count DESC" let create = tup2 diff --git a/backend/src/main.ml b/backend/src/main.ml index a9c477c..d707fe2 100644 --- a/backend/src/main.ml +++ b/backend/src/main.ml @@ -27,7 +27,7 @@ let auth = Web.choose ~scope: "/api" ~middlewares: [ require_login; verify_expir Web.post "/reviews/create" Handlers.Reviews.create; ] -let router = Web.choose ~middlewares: [ logger; Opium.Middleware.allow_cors (); ] [ +let router = Web.choose ~middlewares: [ logger; allow_cors; ] [ public; no_auth; auth; diff --git a/frontend/src/routes/+page.svelte b/frontend/src/routes/+page.svelte index f5bb561..7f27e2b 100644 --- a/frontend/src/routes/+page.svelte +++ b/frontend/src/routes/+page.svelte @@ -22,7 +22,7 @@ }); -
Thanks for sharing such a precious information.
+ + + +Visit /toilets page to leave a review.
+ +No reviews found :(
+ {:else} + {#each [0, 1, 2] as rem} +Error: {JSON.stringify(error.response.data)}
+{/await} diff --git a/frontend/src/routes/reviews/reviewCard.svelte b/frontend/src/routes/reviews/reviewCard.svelte new file mode 100644 index 0000000..3d37713 --- /dev/null +++ b/frontend/src/routes/reviews/reviewCard.svelte @@ -0,0 +1,100 @@ + + + +{building} - {place}
+{description}
+ +Please verify if someone already created the toilet you want to review before creating it.
+ +No toilets found :(
+ {:else} + {#each [0, 1, 2] as rem} +Error: {JSON.stringify(error.response.data)}
+{/await} diff --git a/frontend/src/routes/toilets/new/+page.svelte b/frontend/src/routes/toilets/new/+page.svelte new file mode 100644 index 0000000..59abad5 --- /dev/null +++ b/frontend/src/routes/toilets/new/+page.svelte @@ -0,0 +1,94 @@ + + +Please verify if someone already created the toilet you want to review before creating it.
+ + + +{building} - {place}
+{description}
+