feat: implement filament and spool preset services with CRUD operations

- Add `FilamentService` for managing filament inventory, including creation, retrieval, updating, and deletion of filaments.
- Introduce `SpoolPresetService` for handling spool presets, allowing users to create, update, and delete their custom presets.
- Create domain models for `Filament` and `SpoolPreset` with necessary fields and methods.
- Define repository interfaces for filament and spool preset persistence.
- Implement application configuration management from environment variables.
- Set up error handling with a centralized `AppError` type.
- Build the Axum router with public and protected routes for user authentication and resource management.
This commit is contained in:
2026-03-14 09:38:28 -03:00
parent c90d2f920b
commit abdc2fe8ce
67 changed files with 7832 additions and 0 deletions
@@ -0,0 +1,20 @@
info:
name: Forgot Password
type: http
seq: 5
http:
method: POST
url: http://0.0.0.0:8080/api/v1/auth/forgot-password
body:
type: json
data: |-
{
"email": "felipe@felipecncloud.com"
}
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
@@ -0,0 +1,21 @@
info:
name: Login
type: http
seq: 2
http:
method: POST
url: http://0.0.0.0:8080/api/v1/auth/login
body:
type: json
data: |-
{
"email": "felipe@felipecncloud.com",
"password": "12345678"
}
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
@@ -0,0 +1,24 @@
info:
name: Logout
type: http
seq: 2
http:
method: POST
url: http://0.0.0.0:8080/api/v1/auth/logout
body:
type: json
data: |-
{
"email": "felipe@felipecncloud.com",
"password": "l11f06c10"
}
auth:
type: bearer
token: "{{access_token}}"
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
@@ -0,0 +1,20 @@
info:
name: OAuth Google
type: http
seq: 8
http:
method: POST
url: http://0.0.0.0:8080/api/v1/auth/oauth/google
body:
type: json
data: |-
{
"id_token": "{{google_id_token}}"
}
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
@@ -0,0 +1,20 @@
info:
name: Refresh Token
type: http
seq: 4
http:
method: POST
url: http://0.0.0.0:8080/api/v1/auth/refresh
body:
type: json
data: |-
{
"refresh_token": "{{refresh_token}}"
}
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
@@ -0,0 +1,21 @@
info:
name: Register
type: http
seq: 1
http:
method: POST
url: http://0.0.0.0:8080/api/v1/auth/register
body:
type: json
data: |-
{
"email": "felipe@felipecncloud.com",
"password": "12345678"
}
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
@@ -0,0 +1,21 @@
info:
name: Reset Password
type: http
seq: 7
http:
method: POST
url: http://0.0.0.0:8080/api/v1/auth/reset-password
body:
type: json
data: |-
{
"token": "{{reset_token}}",
"new_password": "novaSenha123"
}
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
@@ -0,0 +1,20 @@
info:
name: Verify Email
type: http
seq: 6
http:
method: POST
url: http://0.0.0.0:8080/api/v1/auth/verify-email
body:
type: json
data: |-
{
"token": "{{email_verify_token}}"
}
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
@@ -0,0 +1,6 @@
info:
name: Auth
type: folder
seq: 2
request: {}