From 8b72661e5515750137e77e500af7c45683f66f80 Mon Sep 17 00:00:00 2001 From: claGiaSW Date: Mon, 11 Nov 2024 10:51:16 +0000 Subject: [PATCH 01/11] test api with sample data --- package.json | 9 ++++++++- routes/routes.ts | 41 +++++++++++++++++++++++++++++++++++++++++ src/server.ts | 21 ++++++++++++++++----- 3 files changed, 65 insertions(+), 6 deletions(-) create mode 100644 routes/routes.ts diff --git a/package.json b/package.json index 7ece7bb..1a49c99 100644 --- a/package.json +++ b/package.json @@ -11,5 +11,12 @@ }, "devDependencies": { "tsx": "^4.19.2" - } + }, + "name": "marsappapi", + "version": "1.0.0", + "description": "Run project with `npm run start`", + "main": "index.js", + "keywords": [], + "author": "", + "license": "ISC" } diff --git a/routes/routes.ts b/routes/routes.ts new file mode 100644 index 0000000..90acf21 --- /dev/null +++ b/routes/routes.ts @@ -0,0 +1,41 @@ +import express from "express"; +const apiRoutes = express.Router(); + +interface Toss { + wonBy: string; + Decision: string; +} + +interface Match { + matchID: number; + Teams: string; + Date: string; + Toss: Toss; +} + +const matchDetails: Match[] = [ + { + matchID: 60, + Teams: "Rajasthan Royals vs Kolkata Knight Riders", + Date: "19 May 2024", + Toss: { + wonBy: "Team Name", + Decision: "TBD", + }, + }, + { + matchID: 61, + Teams: "Mumbai Indians vs Chennai Super Kings", + Date: "20 May 2024", + Toss: { + wonBy: "Team Name", + Decision: "TBD", + }, + }, +]; + +apiRoutes.get("/ipl", (req: any, res: any) => { + res.status(200).json(matchDetails); +}); + +export default apiRoutes; \ No newline at end of file diff --git a/src/server.ts b/src/server.ts index 5214fdc..aeea974 100644 --- a/src/server.ts +++ b/src/server.ts @@ -1,14 +1,25 @@ import express from "express"; +import apiRoutes from "../routes/routes"; const app = express(); -const port = 5000; +const port = 3000; -app.use(express.json()); -const router = express.Router(); +// app.use(express.json()); +// const router = express.Router(); -router.get('/', (req: any, res: any) => res.send('Hello world !')); -app.use('/', router); +// router.get('/', (req: any, res: any) => { +// res.send("Hello") +// }); + +app.get('/', (req: any, res: any) => { + res.send("Hello") +}); +app.get("/ipl", apiRoutes); + +// app.use('/', router); app.listen(port, () => { console.log(`Test backend is running on port ${port}`); }); + +export default app; \ No newline at end of file From 542603a3b6b3f50cc9ae662ee096aa9ca758e7cc Mon Sep 17 00:00:00 2001 From: claGiaSW Date: Mon, 11 Nov 2024 11:38:12 +0000 Subject: [PATCH 02/11] api gets info from rover and sends list of img_urls in response --- package-lock.json | 19 ++++++++++++++++- package.json | 1 + routes/routes.ts | 1 + src/server.ts | 53 +++++++++++++++++++++++++++++++++++++++-------- 4 files changed, 64 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index ace770e..c9fb3d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,17 @@ { - "name": "MarsAppAPI", + "name": "marsappapi", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { + "name": "marsappapi", + "version": "1.0.0", + "license": "ISC", "dependencies": { "@types/express": "^5.0.0", "axios": "^1.7.7", + "dotenv": "^16.4.5", "express": "^4.21.1", "nodemon": "^3.1.7", "ts-node": "^10.9.2" @@ -899,6 +904,18 @@ "node": ">=0.3.1" } }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", diff --git a/package.json b/package.json index 1a49c99..a3eb9c7 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "dependencies": { "@types/express": "^5.0.0", "axios": "^1.7.7", + "dotenv": "^16.4.5", "express": "^4.21.1", "nodemon": "^3.1.7", "ts-node": "^10.9.2" diff --git a/routes/routes.ts b/routes/routes.ts index 90acf21..619569d 100644 --- a/routes/routes.ts +++ b/routes/routes.ts @@ -1,4 +1,5 @@ import express from "express"; +import axios from "axios"; const apiRoutes = express.Router(); interface Toss { diff --git a/src/server.ts b/src/server.ts index aeea974..8ad82a3 100644 --- a/src/server.ts +++ b/src/server.ts @@ -1,22 +1,57 @@ -import express from "express"; +import express, { response } from "express"; +import axios from "axios"; +import dotenv from "dotenv"; +dotenv.config({ path: './.env' }); + import apiRoutes from "../routes/routes"; const app = express(); const port = 3000; +const apiKey = process.env.NASA_API_KEY; + +interface Camera { + name: string; + full_name: string; +} -// app.use(express.json()); -// const router = express.Router(); +interface Rover { + id: number; + name: string; + landing_date: string; + launch_date: string; + status: string; + max_sol: number; + max_date: string; + total_photos: number; + cameras: Camera[]; +} -// router.get('/', (req: any, res: any) => { -// res.send("Hello") -// }); +interface Photo { + id: number; + sol: number; + camera: {id: number; name: string; rover_id: number; full_name: string; } + img_src: string; + earth_date: string; + rover: Rover; +} app.get('/', (req: any, res: any) => { - res.send("Hello") + axios.get(`https://api.nasa.gov/mars-photos/api/v1/rovers/curiosity/photos?sol=1000&api_key=${apiKey}`) + .then(response => { + const photos: Photo[] = response.data.photos; + const urls: string[] = []; + photos.forEach(photo => { + urls.push(photo.img_src); + }); + res.send(urls); + }) + .catch(error => { + console.error(error); + res.render("error"); + }) }); -app.get("/ipl", apiRoutes); -// app.use('/', router); +app.get("/ipl", apiRoutes); app.listen(port, () => { console.log(`Test backend is running on port ${port}`); From 73442dbbbf2d40ba83c7afdf0a043a01ba0efe01 Mon Sep 17 00:00:00 2001 From: claGiaSW Date: Mon, 11 Nov 2024 15:01:27 +0000 Subject: [PATCH 03/11] getting data from Nasa api using different routers --- routes/routes.ts | 42 ----------------------------- routes/roverRouter.ts | 62 +++++++++++++++++++++++++++++++++++++++++++ src/server.ts | 56 ++++++-------------------------------- 3 files changed, 70 insertions(+), 90 deletions(-) delete mode 100644 routes/routes.ts create mode 100644 routes/roverRouter.ts diff --git a/routes/routes.ts b/routes/routes.ts deleted file mode 100644 index 619569d..0000000 --- a/routes/routes.ts +++ /dev/null @@ -1,42 +0,0 @@ -import express from "express"; -import axios from "axios"; -const apiRoutes = express.Router(); - -interface Toss { - wonBy: string; - Decision: string; -} - -interface Match { - matchID: number; - Teams: string; - Date: string; - Toss: Toss; -} - -const matchDetails: Match[] = [ - { - matchID: 60, - Teams: "Rajasthan Royals vs Kolkata Knight Riders", - Date: "19 May 2024", - Toss: { - wonBy: "Team Name", - Decision: "TBD", - }, - }, - { - matchID: 61, - Teams: "Mumbai Indians vs Chennai Super Kings", - Date: "20 May 2024", - Toss: { - wonBy: "Team Name", - Decision: "TBD", - }, - }, -]; - -apiRoutes.get("/ipl", (req: any, res: any) => { - res.status(200).json(matchDetails); -}); - -export default apiRoutes; \ No newline at end of file diff --git a/routes/roverRouter.ts b/routes/roverRouter.ts new file mode 100644 index 0000000..a9f4cac --- /dev/null +++ b/routes/roverRouter.ts @@ -0,0 +1,62 @@ +import express from "express"; +import axios from "axios"; +const roverRouter = express.Router(); + +import dotenv from "dotenv"; +dotenv.config({ path: './.env' }); +const apiKey = process.env.NASA_API_KEY; + +interface Camera { + name: string; + full_name: string; +} + +interface Rover { + id: number; + name: string; + landing_date: string; + launch_date: string; + status: string; + max_sol: number; + max_date: string; + total_photos: number; + cameras: Camera[]; +} + +interface Photo { + id: number; + sol: number; + camera: {id: number; name: string; rover_id: number; full_name: string; } + img_src: string; + earth_date: string; + rover: Rover; +} + +roverRouter.get('/', (req: any, res: any) => { + axios.get(`https://api.nasa.gov/mars-photos/api/v1/rovers/curiosity/photos?sol=1000&api_key=${apiKey}`) + .then(response => { + res.send(response.data); + }) + .catch(error => { + console.error(error); + res.render("error"); + }) +}); + +roverRouter.get('/photos', (req: any, res: any) => { + axios.get(`https://api.nasa.gov/mars-photos/api/v1/rovers/curiosity/photos?sol=1000&api_key=${apiKey}`) + .then(response => { + const photos: Photo[] = response.data.photos; + const urls: string[] = []; + photos.forEach(photo => { + urls.push(photo.img_src); + }); + res.send(urls); + }) + .catch(error => { + console.error(error); + res.render("error"); + }) +}); + +export default roverRouter; \ No newline at end of file diff --git a/src/server.ts b/src/server.ts index 8ad82a3..45e8617 100644 --- a/src/server.ts +++ b/src/server.ts @@ -1,57 +1,17 @@ -import express, { response } from "express"; -import axios from "axios"; -import dotenv from "dotenv"; -dotenv.config({ path: './.env' }); - -import apiRoutes from "../routes/routes"; +import express from "express"; +import roverRouter from "../routes/roverRouter"; const app = express(); const port = 3000; -const apiKey = process.env.NASA_API_KEY; - -interface Camera { - name: string; - full_name: string; -} - -interface Rover { - id: number; - name: string; - landing_date: string; - launch_date: string; - status: string; - max_sol: number; - max_date: string; - total_photos: number; - cameras: Camera[]; -} - -interface Photo { - id: number; - sol: number; - camera: {id: number; name: string; rover_id: number; full_name: string; } - img_src: string; - earth_date: string; - rover: Rover; -} -app.get('/', (req: any, res: any) => { - axios.get(`https://api.nasa.gov/mars-photos/api/v1/rovers/curiosity/photos?sol=1000&api_key=${apiKey}`) - .then(response => { - const photos: Photo[] = response.data.photos; - const urls: string[] = []; - photos.forEach(photo => { - urls.push(photo.img_src); - }); - res.send(urls); - }) - .catch(error => { - console.error(error); - res.render("error"); - }) +app.get("/", (req: any, res: any) => { + res.send(`Hello space traveller! + What are you exploring today? + A) /rover = all info + B) /rover/photos = photos from that rover`) }); -app.get("/ipl", apiRoutes); +app.use("/rover", roverRouter) app.listen(port, () => { console.log(`Test backend is running on port ${port}`); From d2ddfef972a56991bcb57e29c24eaa2c16ec3608 Mon Sep 17 00:00:00 2001 From: claGiaSW Date: Mon, 11 Nov 2024 15:58:42 +0000 Subject: [PATCH 04/11] adding Cameras enum + refactoring of camera interface --- routes/roverRouter.ts | 20 +++++++++++++++++--- src/server.ts | 2 +- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/routes/roverRouter.ts b/routes/roverRouter.ts index a9f4cac..b1a71be 100644 --- a/routes/roverRouter.ts +++ b/routes/roverRouter.ts @@ -6,8 +6,22 @@ import dotenv from "dotenv"; dotenv.config({ path: './.env' }); const apiKey = process.env.NASA_API_KEY; +enum Cameras { + FHAZ = "FHAZ", + RHAZ = "RHAZ", + MAST = "MAST", + CHEMCAM = "CHEMCAM", + MAHLI = "MAHLI = 5", + MARDI = "MARDI", + NAVCAM = "NAVCAM", + PANCAM = "PANCAM", + MINITES = "MINITES" +} + interface Camera { + id?: number; name: string; + rover_id?: number; full_name: string; } @@ -26,14 +40,14 @@ interface Rover { interface Photo { id: number; sol: number; - camera: {id: number; name: string; rover_id: number; full_name: string; } + camera: Camera; img_src: string; earth_date: string; rover: Rover; } roverRouter.get('/', (req: any, res: any) => { - axios.get(`https://api.nasa.gov/mars-photos/api/v1/rovers/curiosity/photos?sol=1000&api_key=${apiKey}`) + axios.get(`https://api.nasa.gov/mars-photos/api/v1/rovers?api_key=${apiKey}`) .then(response => { res.send(response.data); }) @@ -44,7 +58,7 @@ roverRouter.get('/', (req: any, res: any) => { }); roverRouter.get('/photos', (req: any, res: any) => { - axios.get(`https://api.nasa.gov/mars-photos/api/v1/rovers/curiosity/photos?sol=1000&api_key=${apiKey}`) + axios.get(`https://api.nasa.gov/mars-photos/api/v1/rovers/curiosity/photos?sol=1000&camera=${Cameras.NAVCAM}&api_key=${apiKey}`) .then(response => { const photos: Photo[] = response.data.photos; const urls: string[] = []; diff --git a/src/server.ts b/src/server.ts index 45e8617..350b5dd 100644 --- a/src/server.ts +++ b/src/server.ts @@ -11,7 +11,7 @@ app.get("/", (req: any, res: any) => { B) /rover/photos = photos from that rover`) }); -app.use("/rover", roverRouter) +app.use("/rover", roverRouter); app.listen(port, () => { console.log(`Test backend is running on port ${port}`); From 417723665c216ae39cfdf5e65462a28a07dd6730 Mon Sep 17 00:00:00 2001 From: claGiaSW Date: Tue, 12 Nov 2024 10:29:19 +0000 Subject: [PATCH 05/11] path parameters for rovername and camera (optional) added --- routes/roverRouter.ts | 19 +++++++++++++++++-- src/server.ts | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/routes/roverRouter.ts b/routes/roverRouter.ts index b1a71be..f0adc3d 100644 --- a/routes/roverRouter.ts +++ b/routes/roverRouter.ts @@ -18,6 +18,13 @@ enum Cameras { MINITES = "MINITES" } +enum Rovers { + CURIOSITY = "Curiosity", + SPIRIT = "Spirit", + OPPORTUNITY = "Opportunity", + PERSEVERANCE = "Perseverance" +} + interface Camera { id?: number; name: string; @@ -57,8 +64,16 @@ roverRouter.get('/', (req: any, res: any) => { }) }); -roverRouter.get('/photos', (req: any, res: any) => { - axios.get(`https://api.nasa.gov/mars-photos/api/v1/rovers/curiosity/photos?sol=1000&camera=${Cameras.NAVCAM}&api_key=${apiKey}`) +roverRouter.get('/:rovername/photos/:camera?', (req: any, res: any) => { + + const { rovername, camera } = req.params; + + console.log(`rover: ${rovername}, camera: ${camera}`); + + const nasaUrl = camera ? `https://api.nasa.gov/mars-photos/api/v1/rovers/${rovername}/photos?sol=1000&camera=${camera}&api_key=${apiKey}` + : `https://api.nasa.gov/mars-photos/api/v1/rovers/${rovername}/photos?sol=1000&api_key=${apiKey}`; + + axios.get(nasaUrl) .then(response => { const photos: Photo[] = response.data.photos; const urls: string[] = []; diff --git a/src/server.ts b/src/server.ts index 350b5dd..0bc4679 100644 --- a/src/server.ts +++ b/src/server.ts @@ -11,7 +11,7 @@ app.get("/", (req: any, res: any) => { B) /rover/photos = photos from that rover`) }); -app.use("/rover", roverRouter); +app.use("/rovers", roverRouter); app.listen(port, () => { console.log(`Test backend is running on port ${port}`); From 3dfa493a2c2fefb7c10435e08c777fb365cccf38 Mon Sep 17 00:00:00 2001 From: claGiaSW Date: Tue, 12 Nov 2024 10:35:46 +0000 Subject: [PATCH 06/11] readme update --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index a9c7be4..1079b94 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,5 @@ Run project with `npm run start` + +Sign up to the NASA Open API to get your personal key. +Create a `.env` local file and store your new key there to use this app. From 8a254ec697a3beec1092e307a4182dc05edd5061 Mon Sep 17 00:00:00 2001 From: claGiaSW Date: Tue, 12 Nov 2024 11:58:25 +0000 Subject: [PATCH 07/11] camera converted to optional query parameter --- routes/roverRouter.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/routes/roverRouter.ts b/routes/roverRouter.ts index f0adc3d..c3b7ff9 100644 --- a/routes/roverRouter.ts +++ b/routes/roverRouter.ts @@ -64,14 +64,16 @@ roverRouter.get('/', (req: any, res: any) => { }) }); -roverRouter.get('/:rovername/photos/:camera?', (req: any, res: any) => { +roverRouter.get('/:roverName/photos', (req: any, res: any) => { - const { rovername, camera } = req.params; + const { roverName } = req.params; - console.log(`rover: ${rovername}, camera: ${camera}`); + const { camera } = req.query; - const nasaUrl = camera ? `https://api.nasa.gov/mars-photos/api/v1/rovers/${rovername}/photos?sol=1000&camera=${camera}&api_key=${apiKey}` - : `https://api.nasa.gov/mars-photos/api/v1/rovers/${rovername}/photos?sol=1000&api_key=${apiKey}`; + console.log(`rover: ${roverName}, camera: ${camera}`); + + const nasaUrl = camera ? `https://api.nasa.gov/mars-photos/api/v1/rovers/${roverName}/photos?sol=1000&camera=${camera}&api_key=${apiKey}` + : `https://api.nasa.gov/mars-photos/api/v1/rovers/${roverName}/photos?sol=1000&api_key=${apiKey}`; axios.get(nasaUrl) .then(response => { From a40437fed8a89b5f64edd8f148ab72f49111d2e9 Mon Sep 17 00:00:00 2001 From: claGiaSW Date: Tue, 12 Nov 2024 12:16:25 +0000 Subject: [PATCH 08/11] using parameters in axios get requests --- routes/roverRouter.ts | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/routes/roverRouter.ts b/routes/roverRouter.ts index c3b7ff9..55e1a50 100644 --- a/routes/roverRouter.ts +++ b/routes/roverRouter.ts @@ -54,7 +54,11 @@ interface Photo { } roverRouter.get('/', (req: any, res: any) => { - axios.get(`https://api.nasa.gov/mars-photos/api/v1/rovers?api_key=${apiKey}`) + axios.get(`https://api.nasa.gov/mars-photos/api/v1/rovers`, { + params: { + api_key: apiKey + } + }) .then(response => { res.send(response.data); }) @@ -68,14 +72,18 @@ roverRouter.get('/:roverName/photos', (req: any, res: any) => { const { roverName } = req.params; - const { camera } = req.query; + const { camera, sol, page } = req.query; - console.log(`rover: ${roverName}, camera: ${camera}`); - - const nasaUrl = camera ? `https://api.nasa.gov/mars-photos/api/v1/rovers/${roverName}/photos?sol=1000&camera=${camera}&api_key=${apiKey}` - : `https://api.nasa.gov/mars-photos/api/v1/rovers/${roverName}/photos?sol=1000&api_key=${apiKey}`; + console.log(`rover: ${roverName}, camera: ${camera}, sol: ${sol}`); - axios.get(nasaUrl) + axios.get(`https://api.nasa.gov/mars-photos/api/v1/rovers/${roverName}/photos`, { + params: { + api_key: apiKey, + camera: camera, + page: page | 1, + sol: sol | 1000 + } + }) .then(response => { const photos: Photo[] = response.data.photos; const urls: string[] = []; From c2c5a7d9c3380e096cdbc21dd83e0c0aac61dee9 Mon Sep 17 00:00:00 2001 From: claGiaSW Date: Tue, 12 Nov 2024 12:26:06 +0000 Subject: [PATCH 09/11] refactoring - separating app and server for separation of concerns --- app/index.ts | 15 +++++++++++++++ src/server.ts | 17 ++--------------- 2 files changed, 17 insertions(+), 15 deletions(-) create mode 100644 app/index.ts diff --git a/app/index.ts b/app/index.ts new file mode 100644 index 0000000..8295bcd --- /dev/null +++ b/app/index.ts @@ -0,0 +1,15 @@ +import express from "express"; +import roverRouter from "../routes/roverRouter"; + +const app = express(); + +app.get("/", (req: any, res: any) => { + res.send(`Hello space traveller! + What are you exploring today? + A) /rover = all info + B) /rover/photos = photos from that rover`) +}); + +app.use("/rovers", roverRouter); + +export default app; \ No newline at end of file diff --git a/src/server.ts b/src/server.ts index 0bc4679..09a1fd1 100644 --- a/src/server.ts +++ b/src/server.ts @@ -1,20 +1,7 @@ -import express from "express"; -import roverRouter from "../routes/roverRouter"; +import app from "../app"; -const app = express(); const port = 3000; -app.get("/", (req: any, res: any) => { - res.send(`Hello space traveller! - What are you exploring today? - A) /rover = all info - B) /rover/photos = photos from that rover`) -}); - -app.use("/rovers", roverRouter); - app.listen(port, () => { console.log(`Test backend is running on port ${port}`); -}); - -export default app; \ No newline at end of file +}); \ No newline at end of file From 76cbf058c27508b9f4003352df826cfff8496fc9 Mon Sep 17 00:00:00 2001 From: claGiaSW Date: Tue, 12 Nov 2024 14:07:37 +0000 Subject: [PATCH 10/11] added query parameters, paginationStart and paginationEnd, to query for certain interval of photos (final stretch goal) --- app/index.ts | 4 ++-- routes/roverRouter.ts | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/index.ts b/app/index.ts index 8295bcd..0c54342 100644 --- a/app/index.ts +++ b/app/index.ts @@ -6,8 +6,8 @@ const app = express(); app.get("/", (req: any, res: any) => { res.send(`Hello space traveller! What are you exploring today? - A) /rover = all info - B) /rover/photos = photos from that rover`) + A) /rovers = all rovers' info + B) /rovers/[your preferred rover's name]/photos = photos from that rover`) }); app.use("/rovers", roverRouter); diff --git a/routes/roverRouter.ts b/routes/roverRouter.ts index 55e1a50..3de31d4 100644 --- a/routes/roverRouter.ts +++ b/routes/roverRouter.ts @@ -72,9 +72,7 @@ roverRouter.get('/:roverName/photos', (req: any, res: any) => { const { roverName } = req.params; - const { camera, sol, page } = req.query; - - console.log(`rover: ${roverName}, camera: ${camera}, sol: ${sol}`); + const { camera, sol, page, paginationStart, paginationEnd } = req.query; axios.get(`https://api.nasa.gov/mars-photos/api/v1/rovers/${roverName}/photos`, { params: { @@ -87,10 +85,12 @@ roverRouter.get('/:roverName/photos', (req: any, res: any) => { .then(response => { const photos: Photo[] = response.data.photos; const urls: string[] = []; + photos.forEach(photo => { urls.push(photo.img_src); }); - res.send(urls); + + res.send(urls.slice(paginationStart - 1, paginationEnd)); }) .catch(error => { console.error(error); From fa2687c8096888b766e1552cf9399395da056117 Mon Sep 17 00:00:00 2001 From: claGiaSW Date: Mon, 18 Nov 2024 14:06:28 +0000 Subject: [PATCH 11/11] - Query parameters "page" and "sol" default indicated with logical operator || replacing the previous bitwise operator | - fixed typo in MAHLI enum value --- routes/roverRouter.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/routes/roverRouter.ts b/routes/roverRouter.ts index 3de31d4..fb2b86c 100644 --- a/routes/roverRouter.ts +++ b/routes/roverRouter.ts @@ -11,7 +11,7 @@ enum Cameras { RHAZ = "RHAZ", MAST = "MAST", CHEMCAM = "CHEMCAM", - MAHLI = "MAHLI = 5", + MAHLI = "MAHLI", MARDI = "MARDI", NAVCAM = "NAVCAM", PANCAM = "PANCAM", @@ -78,8 +78,8 @@ roverRouter.get('/:roverName/photos', (req: any, res: any) => { params: { api_key: apiKey, camera: camera, - page: page | 1, - sol: sol | 1000 + page: page || 1, + sol: sol || 1000 } }) .then(response => {