From cf9b9eefbb8d0bf462f1ceb57d171c9b1975d3ef Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Wed, 30 Mar 2022 12:23:34 +0200 Subject: [PATCH] Add restaurant and organization controller - Add restaurant controller - Add organization controller - Add files for types --- package-lock.json | 176 +++++++++++---------- package.json | 2 +- prisma/schema.prisma | 1 - src/controller/organisations.controller.ts | 87 ++++++++++ src/controller/restaurants.controller.ts | 87 ++++++++++ src/datatypes.ts | 4 + src/routes/testrouter.route.ts | 6 +- src/statusCodes.ts | 9 ++ 8 files changed, 286 insertions(+), 86 deletions(-) create mode 100644 src/controller/organisations.controller.ts create mode 100644 src/controller/restaurants.controller.ts create mode 100644 src/datatypes.ts create mode 100644 src/statusCodes.ts diff --git a/package-lock.json b/package-lock.json index d83519a..c170d23 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,20 +1,20 @@ { "name": "server", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, -<<<<<<< Updated upstream -======= "packages": { "": { "name": "server", "version": "1.0.0", "license": "ISC", "dependencies": { + "@prisma/client": "^3.10.0", "@types/express": "^4.17.13", "axios": "^0.26.1", "express": "^4.17.3", "node-fetch": "^3.2.3", + "prisma": "^3.11.1", "ts-node": "^10.5.0", "typescript": "^4.5.5" }, @@ -42,6 +42,37 @@ "node": ">=12" } }, + "node_modules/@prisma/client": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-3.11.1.tgz", + "integrity": "sha512-B3C7zQG4HbjJzUr2Zg9UVkBJutbqq9/uqkl1S138+keZCubJrwizx3RuIvGwI+s+pm3qbsyNqXiZgL3Ir0fSng==", + "hasInstallScript": true, + "dependencies": { + "@prisma/engines-version": "3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9" + }, + "engines": { + "node": ">=12.6" + }, + "peerDependencies": { + "prisma": "*" + }, + "peerDependenciesMeta": { + "prisma": { + "optional": true + } + } + }, + "node_modules/@prisma/engines": { + "version": "3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9.tgz", + "integrity": "sha512-MILbsGnvmnhCbFGa2/iSnsyGyazU3afzD7ldjCIeLIGKkNBMSZgA2IvpYsAXl+6qFHKGrS3B2otKfV31dwMSQw==", + "hasInstallScript": true + }, + "node_modules/@prisma/engines-version": { + "version": "3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9.tgz", + "integrity": "sha512-HkcsDniA4iNb/gi0iuyOJNAM7nD/LwQ0uJm15v360O5dee3TM4lWdSQiTYBMK6FF68ACUItmzSur7oYuUZ2zkQ==" + }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -1504,6 +1535,22 @@ "node": ">=4" } }, + "node_modules/prisma": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-3.11.1.tgz", + "integrity": "sha512-aYn8bQwt1xwR2oSsVNHT4PXU7EhsThIwmpNB/MNUaaMx5OPLTro6VdNJe/sJssXFLxhamfWeMjwmpXjljo6xkg==", + "hasInstallScript": true, + "dependencies": { + "@prisma/engines": "3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9" + }, + "bin": { + "prisma": "build/index.js", + "prisma2": "build/index.js" + }, + "engines": { + "node": ">=12.6" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -2113,7 +2160,6 @@ } } }, ->>>>>>> Stashed changes "dependencies": { "@cspotcode/source-map-consumer": { "version": "0.8.0", @@ -2128,6 +2174,24 @@ "@cspotcode/source-map-consumer": "0.8.0" } }, + "@prisma/client": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-3.11.1.tgz", + "integrity": "sha512-B3C7zQG4HbjJzUr2Zg9UVkBJutbqq9/uqkl1S138+keZCubJrwizx3RuIvGwI+s+pm3qbsyNqXiZgL3Ir0fSng==", + "requires": { + "@prisma/engines-version": "3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9" + } + }, + "@prisma/engines": { + "version": "3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9.tgz", + "integrity": "sha512-MILbsGnvmnhCbFGa2/iSnsyGyazU3afzD7ldjCIeLIGKkNBMSZgA2IvpYsAXl+6qFHKGrS3B2otKfV31dwMSQw==" + }, + "@prisma/engines-version": { + "version": "3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9.tgz", + "integrity": "sha512-HkcsDniA4iNb/gi0iuyOJNAM7nD/LwQ0uJm15v360O5dee3TM4lWdSQiTYBMK6FF68ACUItmzSur7oYuUZ2zkQ==" + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -2207,9 +2271,9 @@ "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "@types/node": { - "version": "17.0.19", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.19.tgz", - "integrity": "sha512-PfeQhvcMR4cPFVuYfBN4ifG7p9c+Dlh3yUZR6k+5yQK7wX3gDgVxBly4/WkBRs9x4dmcy1TVl08SY67wwtEvmA==" + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" }, "@types/qs": { "version": "6.9.7", @@ -2230,6 +2294,12 @@ "@types/node": "*" } }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -2248,8 +2318,6 @@ "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" -<<<<<<< Updated upstream -======= }, "ansi-align": { "version": "3.0.1", @@ -2284,7 +2352,6 @@ "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } ->>>>>>> Stashed changes }, "arg": { "version": "4.1.3", @@ -2296,8 +2363,6 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, -<<<<<<< Updated upstream -======= "axios": { "version": "0.26.1", "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", @@ -2318,7 +2383,6 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, ->>>>>>> Stashed changes "body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", @@ -2336,8 +2400,6 @@ "type-is": "~1.6.18" } }, -<<<<<<< Updated upstream -======= "boxen": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", @@ -2373,14 +2435,11 @@ "fill-range": "^7.0.1" } }, ->>>>>>> Stashed changes "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, -<<<<<<< Updated upstream -======= "cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", @@ -2518,7 +2577,6 @@ "xdg-basedir": "^4.0.0" } }, ->>>>>>> Stashed changes "content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -2547,8 +2605,6 @@ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" }, -<<<<<<< Updated upstream -======= "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -2560,7 +2616,6 @@ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==" }, ->>>>>>> Stashed changes "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -2569,8 +2624,6 @@ "ms": "2.0.0" } }, -<<<<<<< Updated upstream -======= "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", @@ -2592,7 +2645,6 @@ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, ->>>>>>> Stashed changes "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -2608,8 +2660,6 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" }, -<<<<<<< Updated upstream -======= "dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -2625,7 +2675,6 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, ->>>>>>> Stashed changes "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -2704,8 +2753,6 @@ "vary": "~1.1.2" } }, -<<<<<<< Updated upstream -======= "fetch-blob": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.5.tgz", @@ -2724,7 +2771,6 @@ "to-regex-range": "^5.0.1" } }, ->>>>>>> Stashed changes "finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -2739,8 +2785,6 @@ "unpipe": "~1.0.0" } }, -<<<<<<< Updated upstream -======= "follow-redirects": { "version": "1.14.9", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", @@ -2754,7 +2798,6 @@ "fetch-blob": "^3.1.2" } }, ->>>>>>> Stashed changes "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -2765,8 +2808,6 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, -<<<<<<< Updated upstream -======= "fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", @@ -2844,7 +2885,6 @@ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", "dev": true }, ->>>>>>> Stashed changes "http-errors": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", @@ -2865,8 +2905,6 @@ "safer-buffer": ">= 2.1.2 < 3" } }, -<<<<<<< Updated upstream -======= "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", @@ -2885,28 +2923,22 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, ->>>>>>> Stashed changes "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, -<<<<<<< Updated upstream -======= "ini": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true }, ->>>>>>> Stashed changes "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, -<<<<<<< Updated upstream -======= "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -3048,7 +3080,6 @@ } } }, ->>>>>>> Stashed changes "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -3087,8 +3118,6 @@ "mime-db": "1.51.0" } }, -<<<<<<< Updated upstream -======= "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -3110,7 +3139,6 @@ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, ->>>>>>> Stashed changes "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -3121,8 +3149,6 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, -<<<<<<< Updated upstream -======= "node-domexception": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", @@ -3194,7 +3220,6 @@ "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", "dev": true }, ->>>>>>> Stashed changes "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -3203,8 +3228,6 @@ "ee-first": "1.1.1" } }, -<<<<<<< Updated upstream -======= "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -3240,7 +3263,6 @@ } } }, ->>>>>>> Stashed changes "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -3251,8 +3273,6 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, -<<<<<<< Updated upstream -======= "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -3265,7 +3285,14 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, ->>>>>>> Stashed changes + "prisma": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-3.11.1.tgz", + "integrity": "sha512-aYn8bQwt1xwR2oSsVNHT4PXU7EhsThIwmpNB/MNUaaMx5OPLTro6VdNJe/sJssXFLxhamfWeMjwmpXjljo6xkg==", + "requires": { + "@prisma/engines": "3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9" + } + }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -3275,8 +3302,6 @@ "ipaddr.js": "1.9.1" } }, -<<<<<<< Updated upstream -======= "pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", @@ -3302,7 +3327,6 @@ "escape-goat": "^2.0.0" } }, ->>>>>>> Stashed changes "qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", @@ -3324,8 +3348,6 @@ "unpipe": "1.0.0" } }, -<<<<<<< Updated upstream -======= "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -3382,7 +3404,6 @@ "lowercase-keys": "^1.0.0" } }, ->>>>>>> Stashed changes "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -3393,8 +3414,6 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, -<<<<<<< Updated upstream -======= "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -3418,7 +3437,6 @@ } } }, ->>>>>>> Stashed changes "send": { "version": "0.17.2", "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", @@ -3462,22 +3480,17 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, -<<<<<<< Updated upstream -======= "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, ->>>>>>> Stashed changes "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, -<<<<<<< Updated upstream -======= "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -3528,12 +3541,20 @@ "is-number": "^7.0.0" } }, ->>>>>>> Stashed changes "toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + } + }, "ts-node": { "version": "10.5.0", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.5.0.tgz", @@ -3583,8 +3604,6 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==" }, -<<<<<<< Updated upstream -======= "undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", @@ -3600,14 +3619,11 @@ "crypto-random-string": "^2.0.0" } }, ->>>>>>> Stashed changes "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, -<<<<<<< Updated upstream -======= "update-notifier": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", @@ -3650,7 +3666,6 @@ "prepend-http": "^2.0.0" } }, ->>>>>>> Stashed changes "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -3666,8 +3681,6 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, -<<<<<<< Updated upstream -======= "web-streams-polyfill": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", @@ -3723,7 +3736,6 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, ->>>>>>> Stashed changes "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", diff --git a/package.json b/package.json index 0453b3e..3170c44 100644 --- a/package.json +++ b/package.json @@ -23,8 +23,8 @@ "@types/express": "^4.17.13", "axios": "^0.26.1", "express": "^4.17.3", - "prisma": "^3.10.0", "node-fetch": "^3.2.3", + "prisma": "^3.11.1", "ts-node": "^10.5.0", "typescript": "^4.5.5" }, diff --git a/prisma/schema.prisma b/prisma/schema.prisma index e197618..83e9985 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -57,7 +57,6 @@ model Organization { name String domain String users User[] - userId Int } enum Role { diff --git a/src/controller/organisations.controller.ts b/src/controller/organisations.controller.ts new file mode 100644 index 0000000..7afba33 --- /dev/null +++ b/src/controller/organisations.controller.ts @@ -0,0 +1,87 @@ +import { Request, Response } from "express"; +import { HttpStatusCodes } from "../statusCodes"; +import { DataType } from "../datatypes"; +import prisma from "../lib/prisma.lib"; + +export const addOrganization = async (req: Request, res: Response) => { + if (typeof req.body.name !== "string" || typeof req.body.domain !== "string") { + res.status(HttpStatusCodes.BAD_REQUEST).json({ + name: DataType.STRING, + description: DataType.STRING, + }); + return; + } + + const organization = await prisma.organization.create({ + data: { + name: req.body.name, + domain: req.body.domain + } + }); + + res.status(HttpStatusCodes.CREATED).json(organization); +}; + +export const updateOrganization = async (req: Request, res: Response) => { + const id = Number(req.params.id); + + if (Number.isNaN(id)) { + res.status(HttpStatusCodes.BAD_REQUEST).json({ + id: DataType.NUMBER, + }); + } else if (typeof req.body.name !== "string" || typeof req.body.domain !== "string") { + res.status(HttpStatusCodes.BAD_REQUEST).json({ + name: DataType.STRING, + description: DataType.STRING, + }); + return; + } + + const organization = await prisma.organization.update({ + where: { + id: id, + }, + data: { + name: req.body.name, + domain: req.body.domain + }, + }); + + res.status(HttpStatusCodes.OK).json(organization); +}; + +export const deleteRestaurant = async (req: Request, res: Response) => { + const id = Number(req.params.id); + + if (Number.isNaN(id)) { + res.status(HttpStatusCodes.BAD_REQUEST).json({ + id: DataType.NUMBER, + }); + } + + await prisma.organization.delete({ + where: { + id: id, + } + }); + + res.status(HttpStatusCodes.NO_CONTENT).json(); +}; + +export const getOrganization = async (req: Request, res: Response) => { + const id = Number(req.params.id); + + if (Number.isNaN(id)) { + res.status(HttpStatusCodes.BAD_REQUEST).json({ + id: DataType.NUMBER, + }); + } + + const organization = await prisma.restaurant.findUnique({ + where: { + id: id, + } + }); + + res.status(HttpStatusCodes.OK).json(organization); +}; diff --git a/src/controller/restaurants.controller.ts b/src/controller/restaurants.controller.ts new file mode 100644 index 0000000..ffe8ba8 --- /dev/null +++ b/src/controller/restaurants.controller.ts @@ -0,0 +1,87 @@ +import { Request, Response } from "express"; +import { HttpStatusCodes } from "../statusCodes"; +import { DataType } from "../datatypes"; +import prisma from "../lib/prisma.lib"; + +export const addRestaurant = async (req: Request, res: Response) => { + if (typeof req.body.name !== "string" || typeof req.body.description !== "string") { + res.status(HttpStatusCodes.BAD_REQUEST).json({ + name: DataType.STRING, + description: DataType.STRING, + }); + return; + } + + const restaurant = await prisma.restaurant.create({ + data: { + name: req.body.name, + description: req.body.description, + }, + }); + + res.status(HttpStatusCodes.CREATED).json(restaurant); +}; + +export const updateRestaurant = async (req: Request, res: Response) => { + const id = Number(req.params.id); + + if (Number.isNaN(id)) { + res.status(HttpStatusCodes.BAD_REQUEST).json({ + id: DataType.NUMBER, + }); + } else if (typeof req.body.name !== "string" || typeof req.body.description !== "string") { + res.status(HttpStatusCodes.BAD_REQUEST).json({ + name: DataType.STRING, + description: DataType.STRING, + }); + return; + } + + const restaurant = await prisma.restaurant.update({ + where: { + id: id, + }, + data: { + name: req.body.name, + description: req.body.description, + }, + }); + + res.status(HttpStatusCodes.OK).json(restaurant); +}; + +export const deleteRestaurant = async (req: Request, res: Response) => { + const id = Number(req.params.id); + + if (Number.isNaN(id)) { + res.status(HttpStatusCodes.BAD_REQUEST).json({ + id: DataType.NUMBER, + }); + } + + await prisma.restaurant.delete({ + where: { + id: id, + } + }); + + res.status(HttpStatusCodes.NO_CONTENT).json(); +}; + +export const getRestaurant = async (req: Request, res: Response) => { + const id = Number(req.params.id); + + if (Number.isNaN(id)) { + res.status(HttpStatusCodes.BAD_REQUEST).json({ + id: DataType.NUMBER, + }); + } + + const restaurant = await prisma.restaurant.findUnique({ + where: { + id: id, + } + }); + + res.status(HttpStatusCodes.OK).json(restaurant); +}; diff --git a/src/datatypes.ts b/src/datatypes.ts new file mode 100644 index 0000000..65a4541 --- /dev/null +++ b/src/datatypes.ts @@ -0,0 +1,4 @@ +export const DataType = { + STRING: "String", + NUMBER: "Number" +}; diff --git a/src/routes/testrouter.route.ts b/src/routes/testrouter.route.ts index bb3c72f..f03c449 100644 --- a/src/routes/testrouter.route.ts +++ b/src/routes/testrouter.route.ts @@ -1,6 +1,6 @@ import express, { Request, Response } from "express"; import { sayHello } from "../controller/testcontroller.controller"; -import { addRestaurant } from "../controller/restaurants.controller"; +import { addRestaurant, updateRestaurant, deleteRestaurant } from "../controller/restaurants.controller"; const router = express.Router(); @@ -9,6 +9,8 @@ router.get("/", (request: Request, response: Response) => { }); router.post("/test1", sayHello); -router.post("/test2", addRestaurant); +router.post("/addtest/", addRestaurant); +router.put("/updatetest/:id", updateRestaurant); +router.delete("/deletetest/:id", deleteRestaurant); module.exports = router; diff --git a/src/statusCodes.ts b/src/statusCodes.ts new file mode 100644 index 0000000..87163dc --- /dev/null +++ b/src/statusCodes.ts @@ -0,0 +1,9 @@ +export const HttpStatusCodes = { + OK: 200, + CREATED: 201, + MODIFIED: 202, + NO_CONTENT: 204, + BAD_REQUEST: 400, + NOT_FOUND: 404, + INTERNAL_SERVER: 500, +};