feat: initial commit
This commit is contained in:
commit
1b81917307
17 changed files with 1565 additions and 0 deletions
59
internal/api/types.go
Normal file
59
internal/api/types.go
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
package api
|
||||
|
||||
import "encoding/json"
|
||||
|
||||
// PNGRequest represents a request to render a character as PNG
|
||||
type PNGRequest struct {
|
||||
Character json.RawMessage `json:"character"`
|
||||
Rotation float64 `json:"rotation"` // degrees, default 0
|
||||
Background string `json:"background"` // "transparent" or hex "#RRGGBB"
|
||||
Width int `json:"width"` // default 512
|
||||
Height int `json:"height"` // default 512
|
||||
}
|
||||
|
||||
// GIFRequest represents a request to render a character as animated GIF
|
||||
type GIFRequest struct {
|
||||
Character json.RawMessage `json:"character"`
|
||||
Background string `json:"background"` // hex color "#RRGGBB"
|
||||
Frames int `json:"frames"` // default 36 (10° per frame)
|
||||
Width int `json:"width"` // default 512
|
||||
Height int `json:"height"` // default 512
|
||||
Delay int `json:"delay"` // centiseconds between frames, default 5
|
||||
}
|
||||
|
||||
// ErrorResponse represents an error returned by the API
|
||||
type ErrorResponse struct {
|
||||
Error string `json:"error"`
|
||||
}
|
||||
|
||||
// ApplyDefaults fills in default values for PNGRequest
|
||||
func (r *PNGRequest) ApplyDefaults() {
|
||||
if r.Width == 0 {
|
||||
r.Width = 512
|
||||
}
|
||||
if r.Height == 0 {
|
||||
r.Height = 512
|
||||
}
|
||||
if r.Background == "" {
|
||||
r.Background = "transparent"
|
||||
}
|
||||
}
|
||||
|
||||
// ApplyDefaults fills in default values for GIFRequest
|
||||
func (r *GIFRequest) ApplyDefaults() {
|
||||
if r.Width == 0 {
|
||||
r.Width = 512
|
||||
}
|
||||
if r.Height == 0 {
|
||||
r.Height = 512
|
||||
}
|
||||
if r.Frames == 0 {
|
||||
r.Frames = 36
|
||||
}
|
||||
if r.Delay == 0 {
|
||||
r.Delay = 5
|
||||
}
|
||||
if r.Background == "" {
|
||||
r.Background = "#FFFFFF"
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue