# glitr_convert_sql
[![Package Version](https://img.shields.io/hexpm/v/glitr_convert_sql)](https://hex.pm/packages/glitr_convert_sql)
[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/glitr_convert_sql/)
**Create SQL requests effortlessly using glitr_convert**
## Installation
```sh
gleam add glitr_convert_sql
```
## Usage
```gleam
import gleam/io
import glitr/convert as c
import glitr/convert/sql
pub type User {
User(id: String, name: String, age: Int)
}
pub fn user_converter() -> c.Converter(User) {
c.object({
use id <- c.parameter
use name <- c.parameter
use age <- c.parameter
use <- c.constructor
User(id:, name:, age:)
})
|> c.field("id", fn(v) { Ok(v.id) }, c.string())
|> c.field("name", fn(v) { Ok(v.name) }, c.string())
|> c.field("age", fn(v) { Ok(v.age) }, c.int())
|> c.to_converter
}
pub fn main() {
let alice = User("1", "Alice", 24)
sql.insert("users", user_converter(), [alice])
|> io.debug
// INSERT INTO users (id, name, age) VALUES ('1', 'Alice', 24);
let happy_birthday_alice = User(..alice, age: 25)
sql.update("users", user_converter(), alice, "id")
|> io.debug
// UPDATE users SET name='Alice', age=25 WHERE id='1';
sql.select("users", user_converter())
|> io.debug
// SELECT id, name, age FROM users;
}
```
Further documentation can be found at <https://hexdocs.pm/glitr_convert_sql>.
## Features
- Select all requests
- Insert requests
- Update requests
## Backlog
- Select + where requests
- Delete requests
- Integrate more features like order by, returning and joins
## Development
```sh
gleam run # Run the project
gleam test # Run the tests
```