diff --git a/db.json b/db.json index 65a20a85..3cd07830 100644 --- a/db.json +++ b/db.json @@ -27,6 +27,285 @@ "favLang": "pt-br", "receiveNews": true } + }, + { + "id": "2", + "name": "Alice N. Hawking", + "email": "alice.hawking@email.com", + "password": "s3cur3P@ssw0rd!", + "phone": "(21) 98765-4321", + "local": "Rio de Janeiro", + "pets": [ + { + "id": "2", + "breed": "Labrador Retriever", + "name": "Einstein", + "size": { + "small": "", + "medium": "X", + "large": "" + }, + "weight": 30, + "birthday": "15-03-2020", + "castrated": true, + "specialNeeds": false + } + ], + "preferences": { + "favLang": "en-us", + "receiveNews": false + } + }, + { + "id": "3", + "name": "Michael T. Dyson", + "email": "michael.dyson@astroresearch.net", + "password": "AstroPh1sic$2024", + "phone": "(31) 99876-5432", + "local": "Belo Horizonte", + "pets": [ + { + "id": "3", + "breed": "Beagle", + "name": "Newton", + "size": { + "small": "X", + "medium": "", + "large": "" + }, + "weight": 12, + "birthday": "10-11-2019", + "castrated": true, + "specialNeeds": false + } + ], + "preferences": { + "favLang": "en-us", + "receiveNews": true + } + }, + { + "id": "4", + "name": "Dr. Marie L. Curie", + "email": "marie.curie@chemistrylab.org", + "password": "Ch3m!$tryP@ss", + "phone": "(41) 91234-5678", + "local": "Curitiba", + "pets": [ + { + "id": "4", + "breed": "Golden Retriever", + "name": "Curie", + "size": { + "small": "", + "medium": "", + "large": "X" + }, + "weight": 35, + "birthday": "22-07-2018", + "castrated": true, + "specialNeeds": false + } + ], + "preferences": { + "favLang": "fr-fr", + "receiveNews": true + } + }, + { + "id": "5", + "name": "Dr. Alan M. Turing", + "email": "alan.turing@computingpioneers.edu", + "password": "C0mpuT!ngG3n1u$", + "phone": "(51) 98765-4321", + "local": "Porto Alegre", + "pets": [ + { + "id": "5", + "breed": "Siberian Husky", + "name": "Turing", + "size": { + "small": "", + "medium": "X", + "large": "" + }, + "weight": 25, + "birthday": "12-01-2021", + "castrated": false, + "specialNeeds": false + } + ], + "preferences": { + "favLang": "en-gb", + "receiveNews": false + } + }, + { + "id": "6", + "name": "Dr. Rosalind E. Franklin", + "email": "rosalind.franklin@biostructure.com", + "password": "DnaD1sc0verer!", + "phone": "(61) 98765-4321", + "local": "Brasília", + "pets": [ + { + "id": "6", + "breed": "Dalmatian", + "name": "Rosie", + "size": { + "small": "", + "medium": "X", + "large": "" + }, + "weight": 22, + "birthday": "30-04-2019", + "castrated": true, + "specialNeeds": false + } + ], + "preferences": { + "favLang": "en-gb", + "receiveNews": true + } + }, + { + "id": "7", + "name": "Dr. Richard P. Feynman", + "email": "richard.feynman@quantumphysics.org", + "password": "QuntumM3ch@nic$", + "phone": "(71) 92345-6789", + "local": "Salvador", + "pets": [ + { + "id": "7", + "breed": "Border Collie", + "name": "Feynman", + "size": { + "small": "", + "medium": "X", + "large": "" + }, + "weight": 18, + "birthday": "05-09-2020", + "castrated": true, + "specialNeeds": false + } + ], + "preferences": { + "favLang": "en-us", + "receiveNews": false + } + }, + { + "id": "8", + "name": "Dr. Katherine G. Johnson", + "email": "katherine.johnson@nasaresearch.gov", + "password": "Sp@ceC@lculat0r", + "phone": "(81) 93456-7890", + "local": "Recife", + "pets": [ + { + "id": "8", + "breed": "Poodle", + "name": "Kathy", + "size": { + "small": "X", + "medium": "", + "large": "" + }, + "weight": 8, + "birthday": "11-02-2021", + "castrated": true, + "specialNeeds": false + } + ], + "preferences": { + "favLang": "en-us", + "receiveNews": true + } + }, + { + "id": "9", + "name": "Dr. Jane M. Goodall", + "email": "jane.goodall@primateinstitute.org", + "password": "Pr!m@teC0nservat1on", + "phone": "(91) 94567-8901", + "local": "Belém", + "pets": [ + { + "id": "9", + "breed": "Cocker Spaniel", + "name": "Chimp", + "size": { + "small": "", + "medium": "X", + "large": "" + }, + "weight": 14, + "birthday": "22-06-2020", + "castrated": false, + "specialNeeds": false + } + ], + "preferences": { + "favLang": "en-gb", + "receiveNews": false + } + }, + { + "id": "10", + "name": "Dr. Neil A. Armstrong", + "email": "neil.armstrong@moonlanding.org", + "password": "MoonL@nd1ng1969", + "phone": "(11) 97654-3210", + "local": "São Paulo", + "pets": [ + { + "id": "10", + "breed": "German Shepherd", + "name": "Apollo", + "size": { + "small": "", + "medium": "", + "large": "X" + }, + "weight": 32, + "birthday": "20-07-2018", + "castrated": true, + "specialNeeds": false + }, + { + "id": "11", + "breed": "Turkey Shepherd", + "name": "Jadd", + "size": { + "small": "X", + "medium": "", + "large": "" + }, + "weight": 32, + "birthday": "20-07-2017", + "castrated": false, + "specialNeeds": true + } + ], + "preferences": { + "favLang": "en-us", + "receiveNews": true + } + }, + { + "id": "11", + "name": "Jane Doe", + "email": "jane.doe@example.com", + "password": "SecurePass123!", + "phone": "(21) 91234-5678", + "local": "Rio de Janeiro", + "pets": [], + "preferences": { + "favLang": "pt-br", + "receiveNews": false + } } ], "breed": [ diff --git a/package.json b/package.json index 32691072..2b429c66 100644 --- a/package.json +++ b/package.json @@ -22,17 +22,18 @@ "prettier:fix": "prettier . --write --ignore-unknown", "preview": "vite preview", "storybook": "storybook dev -p 6006", - "stylelint": "stylelint \"**/*.scss\"" + "stylelint": "stylelint \"**/*.scss\"", + "mock-api": "json-server db.json" }, "dependencies": { "concurrently": "8.2.2", "dayjs": "^1.11.10", "pet-dex-utilities": "^1.0.1", "reset-css": "^5.0.2", + "vanilla-routing": "0.0.4", + "vite": "^5.2.11", "vite-jsconfig-paths": "2.0.1", - "vite-plugin-pwa": "^0.19.8", - "vite": "^5.2.10", - "vanilla-routing": "0.0.4" + "vite-plugin-pwa": "^0.19.8" }, "devDependencies": { "@commitlint/cli": "^19.2.2", @@ -81,7 +82,8 @@ "stylelint-order": "^6.0.4", "stylelint-prettier": "^5.0.0", "stylelint-scss": "^6.2.1", - "vitest": "^1.6.0" + "vitest": "^1.6.0", + "json-server": "1.0.0-beta.1" }, "config": { "commitizen": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 35c9a86b..0321856c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,7 +21,7 @@ dependencies: specifier: 0.0.4 version: 0.0.4 vite: - specifier: ^5.2.10 + specifier: ^5.2.11 version: 5.2.11(@types/node@20.12.10)(sass@1.77.0) vite-jsconfig-paths: specifier: 2.0.1 @@ -136,6 +136,9 @@ devDependencies: jsdom: specifier: ^23.2.0 version: 23.2.0 + json-server: + specifier: 1.0.0-beta.1 + version: 1.0.0-beta.1 lint-staged: specifier: ^15.2.2 version: 15.2.2 @@ -3217,6 +3220,134 @@ packages: '@testing-library/dom': 9.3.4 dev: true + /@tinyhttp/accepts@2.2.1: + resolution: {integrity: sha512-2DHJLSJX1gqR5F6nKuu7+hyCNoPRNOxvnQ11m0X8klkSVoBFBO2HMf3bJ8P+fmNv1e6RjHzHF+G+hJ3dxXIQXQ==} + engines: {node: '>=12.20.0'} + dependencies: + mime: 4.0.1 + negotiator: 0.6.3 + dev: true + + /@tinyhttp/app@2.2.3: + resolution: {integrity: sha512-njr499Tx9BwlnIGfJjTuqfPwaUSTsjhUeRq/jVtHJpS95UgWECH7kiq8+bEx6TFRXiNKpARZ6KJUemlMyV+iCg==} + engines: {node: '>=14.21.3'} + dependencies: + '@tinyhttp/cookie': 2.1.0 + '@tinyhttp/proxy-addr': 2.1.3 + '@tinyhttp/req': 2.2.2 + '@tinyhttp/res': 2.2.2 + '@tinyhttp/router': 2.2.2 + header-range-parser: 1.1.3 + regexparam: 2.0.2 + dev: true + + /@tinyhttp/content-disposition@2.2.0: + resolution: {integrity: sha512-w1dJaSAtcCinOlT/YQg35RnFCOBbCHBGDVhH4yLoiJVtecRAJ2cYMf5HP+UhfbXURa38GC8fkRXO0vODDTjmeg==} + engines: {node: '>=12.20.0'} + dev: true + + /@tinyhttp/content-type@0.1.4: + resolution: {integrity: sha512-dl6f3SHIJPYbhsW1oXdrqOmLSQF/Ctlv3JnNfXAE22kIP7FosqJHxkz/qj2gv465prG8ODKH5KEyhBkvwrueKQ==} + engines: {node: '>=12.4'} + dev: true + + /@tinyhttp/cookie-signature@2.1.0: + resolution: {integrity: sha512-bpOXBGf9rKoajtEG75O7xjwW+u2I/NNPkJWJTDdr6j7Vx0lG5R9Hnl3ty80Af4jwyo90ywXVpZIxKLubPK6RzA==} + engines: {node: '>=12.20.0'} + dev: true + + /@tinyhttp/cookie@2.1.0: + resolution: {integrity: sha512-o56utxXvIuLTCtPm66r8lcyUufpw0RkO+u4wQrTbc6snyyGZZ9hHzGRxPyko0ks90ctOkLh0mNKn7YZaTWlvfw==} + engines: {node: '>=12.20.0'} + dev: true + + /@tinyhttp/cors@2.0.0: + resolution: {integrity: sha512-IwQsPBnK+gRrhTsPA4FPOfbNzZZt8cVsOIMNFb6HzoScaiWcoLEogL0Bz/aBSm8KM13uieVXoVT6udMqhqUS2A==} + engines: {node: '>=12.4 || 14.x || >=16'} + dependencies: + es-vary: 0.1.2 + dev: true + + /@tinyhttp/encode-url@2.1.1: + resolution: {integrity: sha512-AhY+JqdZ56qV77tzrBm0qThXORbsVjs/IOPgGCS7x/wWnsa/Bx30zDUU/jPAUcSzNOzt860x9fhdGpzdqbUeUw==} + engines: {node: '>=12.20.0'} + dev: true + + /@tinyhttp/etag@2.1.1: + resolution: {integrity: sha512-AcHGK1nMlKIHmlbg8bb8UY/KhiaAX17SAn3/6wlgwwdX4UizA8HETDfCH3KLdu2ZASokynuwVFNDJCo1DAawGw==} + engines: {node: '>=12.20.0'} + dev: true + + /@tinyhttp/forwarded@2.1.2: + resolution: {integrity: sha512-9H/eulJ68ElY/+zYpTpNhZ7vxGV+cnwaR6+oQSm7bVgZMyuQfgROW/qvZuhmgDTIxnGMXst+Ba4ij6w6Krcs3w==} + engines: {node: '>=12.20.0'} + dev: true + + /@tinyhttp/proxy-addr@2.1.3: + resolution: {integrity: sha512-Z0Q/0wEJpvall7LlBezXDy96CXLzPZb6xJawwEgsMXXQhmjb+r3EkpCBwMrWm2GlbJFL/UxKxpdumiNW3Ne06g==} + engines: {node: '>=12.20.0'} + dependencies: + '@tinyhttp/forwarded': 2.1.2 + ipaddr.js: 2.2.0 + dev: true + + /@tinyhttp/req@2.2.2: + resolution: {integrity: sha512-LaL/RFRro0qjOQ0g3vxE6i9bWl9hhv9en7opykzLU4NimFPg2C8wl7Qkoyc0mDuoRMQmWpq730PDWXSUmLiT2A==} + engines: {node: '>=12.20.0'} + dependencies: + '@tinyhttp/accepts': 2.2.1 + '@tinyhttp/type-is': 2.2.2 + '@tinyhttp/url': 2.1.1 + header-range-parser: 1.1.3 + dev: true + + /@tinyhttp/res@2.2.2: + resolution: {integrity: sha512-YeEYFwozag2qO5xoTj1Df+d5l6MXUefxz3xbcJD6ASVqUQytTEYtOC0FjhQKLpTLjMJKlS4mkKmeIdDLFO9btg==} + engines: {node: '>=12.20.0'} + dependencies: + '@tinyhttp/content-disposition': 2.2.0 + '@tinyhttp/cookie': 2.1.0 + '@tinyhttp/cookie-signature': 2.1.0 + '@tinyhttp/encode-url': 2.1.1 + '@tinyhttp/req': 2.2.2 + '@tinyhttp/send': 2.2.1 + '@tinyhttp/vary': 0.1.3 + es-escape-html: 0.1.1 + mime: 4.0.1 + dev: true + + /@tinyhttp/router@2.2.2: + resolution: {integrity: sha512-i+1ouhPyTqcuJuOsKqmo7i+YD++0RF2lQLhBpcTnsaegD2gTEa3xW2Pcz7spYQGo7K8PQYtOrL7m9b14+BEXqg==} + engines: {node: '>=12.20.0'} + dev: true + + /@tinyhttp/send@2.2.1: + resolution: {integrity: sha512-uFW0fxmYIPpB5RKP2vpL8QuafjUrCBmBWxZMIhFb7uBQky87t7x1QdpRB0vc+w11a2kok+Nc8ClD5kc6CRJCFg==} + engines: {node: '>=12.20.0'} + dependencies: + '@tinyhttp/content-type': 0.1.4 + '@tinyhttp/etag': 2.1.1 + mime: 4.0.1 + dev: true + + /@tinyhttp/type-is@2.2.2: + resolution: {integrity: sha512-DmTm0MkdrUxEPI2WBBoYJT0bitWx6+xeUd3lya1NGbKmYArzyUE+KVro/9y/h6Bxh+RaAKNeTCF4H/ksbe/ULQ==} + engines: {node: '>=12.20.0'} + dependencies: + '@tinyhttp/content-type': 0.1.4 + mime: 4.0.1 + dev: true + + /@tinyhttp/url@2.1.1: + resolution: {integrity: sha512-POJeq2GQ5jI7Zrdmj22JqOijB5/GeX+LEX7DUdml1hUnGbJOTWDx7zf2b5cCERj7RoXL67zTgyzVblBJC+NJWg==} + engines: {node: '>=12.20.0'} + dev: true + + /@tinyhttp/vary@0.1.3: + resolution: {integrity: sha512-SoL83sQXAGiHN1jm2VwLUWQSQeDAAl1ywOm6T0b0Cg1CZhVsjoiZadmjhxF6FHCCY7OHHVaLnTgSMxTPIDLxMg==} + engines: {node: '>=12.20'} + dev: true + /@types/aria-query@5.0.4: resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} dev: true @@ -4956,6 +5087,20 @@ packages: is-obj: 2.0.0 dev: true + /dot-prop@8.0.2: + resolution: {integrity: sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==} + engines: {node: '>=16'} + dependencies: + type-fest: 3.13.1 + dev: true + + /dot-prop@9.0.0: + resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} + engines: {node: '>=18'} + dependencies: + type-fest: 4.20.1 + dev: true + /dotenv-expand@10.0.0: resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} engines: {node: '>=12'} @@ -5096,6 +5241,11 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + /es-escape-html@0.1.1: + resolution: {integrity: sha512-yUx1o+8RsG7UlszmYPtks+dm6Lho2m8lgHMOsLJQsFI0R8XwUJwiMhM1M4E/S8QLeGyf6MkDV/pWgjQ0tdTSyQ==} + engines: {node: '>=12.x'} + dev: true + /es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: @@ -5162,6 +5312,11 @@ packages: is-date-object: 1.0.5 is-symbol: 1.0.4 + /es-vary@0.1.2: + resolution: {integrity: sha512-pLqqZoOutAXQXyBJrUYVNM5fZngiOJYi1Xl4svQMrluTsqDUOQlBMw9EYgLrsWL6niDYn/Yd1y2Pj6GC+j/yjA==} + engines: {node: '>=12.x'} + dev: true + /esbuild-plugin-alias@0.2.1: resolution: {integrity: sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==} dev: true @@ -5644,6 +5799,11 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + /eta@3.4.0: + resolution: {integrity: sha512-tCsc7WXTjrTx4ZjYLplcqrI3o4mYJ+Z6YspeuGL8tbt/hHoMchwBwtKfwM09svEY86iRapY93vUqQttcNuIO5Q==} + engines: {node: '>=6.0.0'} + dev: true + /etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} @@ -6321,6 +6481,11 @@ packages: '@types/hast': 3.0.4 dev: true + /header-range-parser@1.1.3: + resolution: {integrity: sha512-B9zCFt3jH8g09LR1vHL4pcAn8yMEtlSlOUdQemzHMRKMImNIhhszdeosYFfNW0WXKQtXIlWB+O4owHJKvEJYaA==} + engines: {node: '>=12.22.0'} + dev: true + /homedir-polyfill@1.0.3: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} @@ -6447,6 +6612,11 @@ packages: engines: {node: '>=8'} dev: true + /inflection@3.0.0: + resolution: {integrity: sha512-1zEJU1l19SgJlmwqsEyFTbScw/tkMHFenUo//Y0i+XEP83gDFdMvPizAD/WGcE+l1ku12PcTVHQhO6g5E0UCMw==} + engines: {node: '>=18.0.0'} + dev: true + /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: @@ -6524,6 +6694,11 @@ packages: engines: {node: '>= 0.10'} dev: true + /ipaddr.js@2.2.0: + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} + engines: {node: '>= 10'} + dev: true + /is-absolute-url@4.0.1: resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -7028,6 +7203,25 @@ packages: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} dev: false + /json-server@1.0.0-beta.1: + resolution: {integrity: sha512-xOKYyxkVai66OTFZq5ulAaXYkqiKMbzVED9tRZ+CMg6v6iaSdIVYas5tIjSMw/mYwDL/nJFTCca308gaL0coyA==} + engines: {node: '>=18.3'} + hasBin: true + dependencies: + '@tinyhttp/app': 2.2.3 + '@tinyhttp/cors': 2.0.0 + chalk: 5.3.0 + chokidar: 3.6.0 + dot-prop: 9.0.0 + eta: 3.4.0 + inflection: 3.0.0 + json5: 2.2.3 + lowdb: 7.0.1 + milliparsec: 2.3.0 + sirv: 2.0.4 + sort-on: 6.0.0 + dev: true + /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true @@ -7289,6 +7483,13 @@ packages: get-func-name: 2.0.2 dev: true + /lowdb@7.0.1: + resolution: {integrity: sha512-neJAj8GwF0e8EpycYIDFqEPcx9Qz4GUho20jWFR7YiFeXzF1YMLdxB36PypcTSPMA+4+LvgyMacYhlr18Zlymw==} + engines: {node: '>=18'} + dependencies: + steno: 4.0.2 + dev: true + /lru-cache@10.2.2: resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} engines: {node: 14 || >=16.14} @@ -7415,6 +7616,11 @@ packages: braces: 3.0.2 picomatch: 2.3.1 + /milliparsec@2.3.0: + resolution: {integrity: sha512-b+6KYJw+DwQjk24qCUuq+lZvRXDpXJ02qsllKgKaDurHpQ0v7D5op9VAkdYM/pXRhFeh7uLYHmnwFnYvdXGa3A==} + engines: {node: '>=12.4'} + dev: true + /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -7433,6 +7639,12 @@ packages: hasBin: true dev: true + /mime@4.0.1: + resolution: {integrity: sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==} + engines: {node: '>=16'} + hasBin: true + dev: true + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -8382,6 +8594,11 @@ packages: es-errors: 1.3.0 set-function-name: 2.0.2 + /regexparam@2.0.2: + resolution: {integrity: sha512-A1PeDEYMrkLrfyOwv2jwihXbo9qxdGD3atBYQA9JJgreAx8/7rC6IUkWOw2NQlOxLp2wL0ifQbh1HuidDfYA6w==} + engines: {node: '>=8'} + dev: true + /regexpu-core@5.3.2: resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} engines: {node: '>=4'} @@ -8793,6 +9010,13 @@ packages: resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} dev: false + /sort-on@6.0.0: + resolution: {integrity: sha512-d51VlJWoFQjp+cIZRyNusCyJdP5pLAw+H+sC4C2q6RhPBv+RAb/QXXck5q3Kdm7h/ot/kD2AlpGPDee8v+0qiA==} + engines: {node: '>=18'} + dependencies: + dot-prop: 8.0.2 + dev: true + /source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} @@ -8867,6 +9091,11 @@ packages: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} dev: true + /steno@4.0.2: + resolution: {integrity: sha512-yhPIQXjrlt1xv7dyPQg2P17URmXbuM5pdGkpiMB3RenprfiBlvK415Lctfe0eshk90oA7/tNq7WEiMK8RSP39A==} + engines: {node: '>=18'} + dev: true + /stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} @@ -9515,6 +9744,16 @@ packages: engines: {node: '>=12.20'} dev: true + /type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} + dev: true + + /type-fest@4.20.1: + resolution: {integrity: sha512-R6wDsVsoS9xYOpy8vgeBlqpdOyzJ12HNfQhC/aAKWM3YoCV9TtunJzh/QpkMgeDhkoynDcw5f1y+qF9yc/HHyg==} + engines: {node: '>=16'} + dev: true + /type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} diff --git a/src/services/user/userService.js b/src/services/user/userService.js new file mode 100644 index 00000000..d1e86a2f --- /dev/null +++ b/src/services/user/userService.js @@ -0,0 +1,16 @@ +export const UserService = { + getPets: async (userId) => { + try { + const response = await fetch(`http://localhost:3000/user/${userId}`); + + if (!response.ok) { + throw new Error('Ocorreu um erro na requisição'); + } + + const { pets } = await response.json(); + return pets; + } catch (error) { + return `Ocorreu o seguinte erro: ${error}`; + } + }, +};