mirror of
https://github.com/lus/pasty.git
synced 2023-08-10 21:13:09 +03:00
Implement paste creation endpoint
This commit is contained in:
parent
51765d6f03
commit
3aba9adb32
@ -2,6 +2,7 @@ package v1
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"github.com/Lukaesebrot/pasty/internal/pastes"
|
||||||
"github.com/Lukaesebrot/pasty/internal/storage"
|
"github.com/Lukaesebrot/pasty/internal/storage"
|
||||||
"github.com/bwmarrin/snowflake"
|
"github.com/bwmarrin/snowflake"
|
||||||
"github.com/fasthttp/router"
|
"github.com/fasthttp/router"
|
||||||
@ -45,3 +46,39 @@ func v1GetPaste(ctx *fasthttp.RequestCtx) {
|
|||||||
}
|
}
|
||||||
ctx.SetBody(jsonData)
|
ctx.SetBody(jsonData)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// v1PostPaste handles the 'POST /v1/pastes' endpoint
|
||||||
|
func v1PostPaste(ctx *fasthttp.RequestCtx) {
|
||||||
|
// Unmarshal the body
|
||||||
|
values := make(map[string]string)
|
||||||
|
err := json.Unmarshal(ctx.PostBody(), &values)
|
||||||
|
if err != nil {
|
||||||
|
ctx.SetStatusCode(fasthttp.StatusBadRequest)
|
||||||
|
ctx.SetBodyString("invalid request body")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate the content of the paste
|
||||||
|
if values["content"] == "" {
|
||||||
|
ctx.SetStatusCode(fasthttp.StatusBadRequest)
|
||||||
|
ctx.SetBodyString("missing 'content' field")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create the paste object
|
||||||
|
paste, err := pastes.Create(values["content"])
|
||||||
|
if err != nil {
|
||||||
|
ctx.SetStatusCode(fasthttp.StatusInternalServerError)
|
||||||
|
ctx.SetBodyString(err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Respond with the paste
|
||||||
|
jsonData, err := json.Marshal(paste)
|
||||||
|
if err != nil {
|
||||||
|
ctx.SetStatusCode(fasthttp.StatusInternalServerError)
|
||||||
|
ctx.SetBodyString(err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ctx.SetBody(jsonData)
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user