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:
@@ -0,0 +1,32 @@
|
||||
info:
|
||||
name: Create Filament
|
||||
type: http
|
||||
seq: 2
|
||||
|
||||
http:
|
||||
method: POST
|
||||
url: http://0.0.0.0:8080/api/v1/filaments
|
||||
body:
|
||||
type: json
|
||||
data: |-
|
||||
{
|
||||
"material": "PLA",
|
||||
"brand": "Bambu",
|
||||
"model": "PLA Basic",
|
||||
"color_hex": "#FF5733",
|
||||
"spool_preset_id": "{{preset_id}}",
|
||||
"total_weight_g": 1250,
|
||||
"temp_hotend_c": 220,
|
||||
"temp_bed_c": 60,
|
||||
"flow_factor_pct": 1.0,
|
||||
"notes": "Filamento de teste"
|
||||
}
|
||||
auth:
|
||||
type: bearer
|
||||
token: "{{access_token}}"
|
||||
|
||||
settings:
|
||||
encodeUrl: true
|
||||
timeout: 0
|
||||
followRedirects: true
|
||||
maxRedirects: 5
|
||||
@@ -0,0 +1,17 @@
|
||||
info:
|
||||
name: Delete Filament
|
||||
type: http
|
||||
seq: 5
|
||||
|
||||
http:
|
||||
method: DELETE
|
||||
url: http://0.0.0.0:8080/api/v1/filaments/{{filament_id}}
|
||||
auth:
|
||||
type: bearer
|
||||
token: "{{access_token}}"
|
||||
|
||||
settings:
|
||||
encodeUrl: true
|
||||
timeout: 0
|
||||
followRedirects: true
|
||||
maxRedirects: 5
|
||||
@@ -0,0 +1,24 @@
|
||||
info:
|
||||
name: Export Label SVG
|
||||
type: http
|
||||
seq: 7
|
||||
|
||||
http:
|
||||
method: GET
|
||||
url: http://0.0.0.0:8080/api/v1/filaments/{{filament_id}}/label.svg
|
||||
params:
|
||||
- name: width_mm
|
||||
value: "80"
|
||||
enabled: true
|
||||
- name: height_mm
|
||||
value: "30"
|
||||
enabled: true
|
||||
auth:
|
||||
type: bearer
|
||||
token: "{{access_token}}"
|
||||
|
||||
settings:
|
||||
encodeUrl: true
|
||||
timeout: 0
|
||||
followRedirects: true
|
||||
maxRedirects: 5
|
||||
@@ -0,0 +1,17 @@
|
||||
info:
|
||||
name: Get Filament
|
||||
type: http
|
||||
seq: 3
|
||||
|
||||
http:
|
||||
method: GET
|
||||
url: http://0.0.0.0:8080/api/v1/filaments/{{filament_id}}
|
||||
auth:
|
||||
type: bearer
|
||||
token: "{{access_token}}"
|
||||
|
||||
settings:
|
||||
encodeUrl: true
|
||||
timeout: 0
|
||||
followRedirects: true
|
||||
maxRedirects: 5
|
||||
@@ -0,0 +1,22 @@
|
||||
info:
|
||||
name: Get QR Code
|
||||
type: http
|
||||
seq: 6
|
||||
|
||||
http:
|
||||
method: GET
|
||||
url: http://0.0.0.0:8080/api/v1/filaments/{{filament_id}}/qrcode
|
||||
auth:
|
||||
type: bearer
|
||||
token: "{{access_token}}"
|
||||
|
||||
runtime:
|
||||
variables:
|
||||
- name: filament_id
|
||||
value: e1edc611-f020-4234-94e5-db5e1393dbf2
|
||||
|
||||
settings:
|
||||
encodeUrl: true
|
||||
timeout: 0
|
||||
followRedirects: true
|
||||
maxRedirects: 5
|
||||
@@ -0,0 +1,36 @@
|
||||
info:
|
||||
name: List Filaments
|
||||
type: http
|
||||
seq: 1
|
||||
|
||||
http:
|
||||
method: GET
|
||||
url: http://0.0.0.0:8080/api/v1/filaments
|
||||
params:
|
||||
- name: page
|
||||
value: "1"
|
||||
enabled: true
|
||||
- name: per_page
|
||||
value: "20"
|
||||
enabled: true
|
||||
- name: material
|
||||
value: PLA
|
||||
enabled: false
|
||||
- name: brand
|
||||
value: Bambu
|
||||
enabled: false
|
||||
- name: search
|
||||
value: ""
|
||||
enabled: false
|
||||
- name: stock_level
|
||||
value: low
|
||||
enabled: false
|
||||
auth:
|
||||
type: bearer
|
||||
token: "{{access_token}}"
|
||||
|
||||
settings:
|
||||
encodeUrl: true
|
||||
timeout: 0
|
||||
followRedirects: true
|
||||
maxRedirects: 5
|
||||
@@ -0,0 +1,32 @@
|
||||
info:
|
||||
name: Update Filament
|
||||
type: http
|
||||
seq: 4
|
||||
|
||||
http:
|
||||
method: PUT
|
||||
url: http://0.0.0.0:8080/api/v1/filaments/{{filament_id}}
|
||||
body:
|
||||
type: json
|
||||
data: |-
|
||||
{
|
||||
"material": "PETG",
|
||||
"brand": "Bambu",
|
||||
"model": "PETG Basic",
|
||||
"color_hex": "#33A1FF",
|
||||
"spool_preset_id": "{{preset_id}}",
|
||||
"total_weight_g": 1000,
|
||||
"temp_hotend_c": 240,
|
||||
"temp_bed_c": 70,
|
||||
"flow_factor_pct": 1.0,
|
||||
"notes": "Atualizado"
|
||||
}
|
||||
auth:
|
||||
type: bearer
|
||||
token: "{{access_token}}"
|
||||
|
||||
settings:
|
||||
encodeUrl: true
|
||||
timeout: 0
|
||||
followRedirects: true
|
||||
maxRedirects: 5
|
||||
@@ -0,0 +1,6 @@
|
||||
info:
|
||||
name: Filaments
|
||||
type: folder
|
||||
seq: 3
|
||||
|
||||
request: {}
|
||||
Reference in New Issue
Block a user