Updated Developers Guide (markdown)

Jordan Knott 2020-10-10 18:20:38 -05:00
parent 15be3a5214
commit 23993d2a7c

@ -89,3 +89,27 @@ The root Query and Mutation objects live in `_root.gql`
The rest of the files contain domain specific declarations. For instance the Mutations The rest of the files contain domain specific declarations. For instance the Mutations
for interacting with tasks is in the `task.gql` file. for interacting with tasks is in the `task.gql` file.
### Database Access
Taskcafe uses `sqlc` (with `sqlx` for things that `sqlc` can not handle which hasn't been much so far) to handle database interactions.
`internal/db` exports a `New` method that takes in a `sqlx.DB` connection and returns a `Repository`.
The `Repository` contains all the methods generated by `sqlc` from the `internal/db/query` SQL files.
If you have the below query in one of the SQL files:
``` sql
-- name: GetProjects :many
SELECT * FROM project;
```
Then the method can be accessed from the `Repository` like so:
```
projects, err := repository.GetProjects(ctx)
```
For more info on the `sqlc` query file format, take at look at [its documentation](https://sqlc.dev/).