indigotech / onboard-pedro-dietrich

Project for onboarding on Taqtile. Consists in a back-end server to learn about Typescript, Node, GraphQL and other tools.
0 stars 0 forks source link

[Track 7/9] User query #23

Open taki-tiler-server[bot] opened 2 months ago

taki-tiler-server[bot] commented 2 months ago

Step 1/3 - The query

Estimated time: 2 hours

This is the first query you're going to implement on the project. After logging in and creating user, now it's time to provide a query for fetching a user information. Some details:

  1. Query Name: user
  2. Parameter: a user id
  3. It's authenticated
  4. Response: a user type, that you already have by now.

Unlike the previous tracks, now you're going to write the query prototype and integrate with the database already.

NOTE: don't forget to predict error cases. In this query, the most obvious one is passing an id that is not found on database.

pedro-m-dietrich commented 2 months ago

Finish

taki-tiler-server[bot] commented 2 months ago

Step 2/3 - The tests

Estimated time: 2 hour

Now it's time to test your query and all its possible scenarios.

Write tests to verify it's working. Again: try to make independent tests, setting up your database before each one according to what you want to test.

pedro-m-dietrich commented 2 months ago

Finish

taki-tiler-server[bot] commented 2 months ago

Step 3/3 - Challenge: seed

Estimated time: 3 hours

[Spoiler alert]: your next track is about writing a query to list users. But in order to do that, you should have users on database (and a lot of them), right? Well, you could use your recently implemented mutation createUser to add them. However, this challenge is about presenting you a more efficient method, while you can learn something new: database seed.

The idea is to write some code to populate your database, creating an environment to facilitate your users (list) query develop. Follow the steps:

  1. Create a new script on package.json and name it seeds. Leave it empty, for now.
  2. Create a file on a folder of your choice and write some code to add at least 50 users on database. This is going to be your seed script.
  3. Think about how you would make it run properly, then return to package.json and create your npm run seeds command.

NOTE: don't forget that you have to connect with the database in order to run the code, right?

You can check on TablePlus (or DBeaver, if you are on a Linux machine) if your script worked.

NOTE 2: this is an example of task that we use the chore/ prefix on the name of the branch.

pedro-m-dietrich commented 2 months ago

Finish

taki-tiler-server[bot] commented 2 months ago

Click here for your next track