47 lines
830 B
Go
47 lines
830 B
Go
package flabweb
|
|
|
|
import (
|
|
"net/http"
|
|
"strconv"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"sectorinf.com/emilis/flabk/util/uriutil"
|
|
)
|
|
|
|
const (
|
|
EndpointOutbox = "outbox"
|
|
)
|
|
|
|
var (
|
|
tempOutboxIDCauseImNotStoringThis = 0
|
|
)
|
|
|
|
type Server struct {
|
|
router *gin.Engine
|
|
v1 *gin.RouterGroup
|
|
hostname string
|
|
}
|
|
|
|
func New(hostname string) Server {
|
|
router := gin.Default()
|
|
v1 := router.Group("v1")
|
|
server := Server{
|
|
hostname: hostname,
|
|
router: router,
|
|
v1: v1,
|
|
}
|
|
v1.POST(EndpointOutbox, server.Outbox)
|
|
return server
|
|
}
|
|
|
|
func (s Server) Run() error {
|
|
return s.router.Run(":8081")
|
|
}
|
|
|
|
func (s Server) Outbox(ctx *gin.Context) {
|
|
id := tempOutboxIDCauseImNotStoringThis
|
|
tempOutboxIDCauseImNotStoringThis++
|
|
ctx.Header("Location", uriutil.JoinURIs(s.hostname, EndpointOutbox, strconv.Itoa(id)))
|
|
ctx.Status(http.StatusCreated)
|
|
}
|