From 8e2257ee79f80f67b263d6f633745ebf47efd20d Mon Sep 17 00:00:00 2001 From: Bradley Shellnut Date: Thu, 21 Apr 2022 17:19:48 -0700 Subject: [PATCH] Adding logic start for exact search. --- package.json | 2 +- src/routes/api/games/index.ts | 47 ++++++++++++++++++++++++++++++++--- src/routes/games/index.svelte | 24 ++++++++++-------- 3 files changed, 57 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 90fe91c..34188ee 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "boredgame", "version": "0.0.1", "scripts": { - "dev": "svelte-kit dev", + "dev": "svelte-kit dev --host", "build": "svelte-kit build", "package": "svelte-kit package", "preview": "svelte-kit preview", diff --git a/src/routes/api/games/index.ts b/src/routes/api/games/index.ts index 485aa4e..552a2ce 100644 --- a/src/routes/api/games/index.ts +++ b/src/routes/api/games/index.ts @@ -6,18 +6,57 @@ export const post: RequestHandler = async ({ request }) => { const queryParams : SearchQuery = { order_by: 'rank', ascending: false, - limit: 20, + limit: 2, client_id: import.meta.env.VITE_PUBLIC_CLIENT_ID, } const minAge = form.get('minAge'); const minPlayers = form.get('minPlayers'); const maxPlayers = form.get('maxPlayers'); + const exactMinAge = form.get('exactMinAge') === 'on' || false; + const exactMinPlayers = form.get('exactMinPlayers') === 'on' || false; + const exactMaxPlayers = form.get('exactMaxPlayers') === 'on' || false; const random = form.get('random') === 'on' || false; - if (minPlayers) queryParams.gt_min_players = (+minPlayers === 1 ? 0 : (+minPlayers - 1)); - if (maxPlayers) queryParams.lt_max_players = +maxPlayers + 1; - if (minAge) queryParams.gt_min_age = +minAge === 1 ? 0 : +minAge - 1; + console.log("form.get('minAge')", form.get('minAge')); + console.log("form.get('minPlayers')", form.get('minPlayers')); + console.log("form.get('maxPlayers')", form.get('maxPlayers')); + console.log("form.get('exactMinAge')", form.get('exactMinAge')); + console.log("form.get('exactMinPlayers')", form.get('exactMinPlayers')); + console.log("form.get('exactMaxPlayers')", form.get('exactMaxPlayers')); + console.log("form.get('random')", form.get('random')); + + console.log('minAge',minAge); + console.log('minPlayers',minPlayers); + console.log('maxPlayers',maxPlayers); + console.log('exactMinAge',exactMinAge); + console.log('exactMinPlayers',exactMinPlayers); + console.log('exactMaxPlayers',exactMaxPlayers); + console.log('random',random); + + if (minAge) { + if (exactMinAge) { + queryParams.min_age = +minAge; + } else { + queryParams.gt_min_age = +minAge === 1 ? 0 : +minAge - 1; + } + } + + if (minPlayers) { + if (exactMinPlayers) { + queryParams.min_players = +minPlayers; + } else { + queryParams.gt_min_players = (+minPlayers === 1 ? 0 : (+minPlayers - 1)); + } + } + + if (maxPlayers) { + if (exactMaxPlayers) { + queryParams.max_players = +maxPlayers; + } else { + queryParams.lt_max_players = +maxPlayers + 1; + } + } queryParams.random = random; const newQueryParams = {}; diff --git a/src/routes/games/index.svelte b/src/routes/games/index.svelte index b1fabd4..0bb25c4 100644 --- a/src/routes/games/index.svelte +++ b/src/routes/games/index.svelte @@ -1,6 +1,6 @@ @@ -29,6 +33,11 @@ import { Checkbox, NumberInput, Tooltip } from "carbon-components-svelte"; Games +

Search Boardgames!

+ +
+

Input your requirements to search for board game that match your criteria

+
@@ -41,7 +50,7 @@ import { Checkbox, NumberInput, Tooltip } from "carbon-components-svelte"; invalidText="Number must be between 0 and 120" label="Min Age" /> - +
-
- - -

- Resources are provisioned based on your account's organization. -

-
-
+
- +