/
address.go
35 lines (30 loc) · 868 Bytes
/
address.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package endpoints
import (
"github.com/amansardana/matching-engine/services"
"github.com/amansardana/matching-engine/types"
"github.com/go-ozzo/ozzo-routing"
)
type addressEndpoint struct {
addressService *services.AddressService
}
// ServeAddress sets up the routing of address endpoints and the corresponding handlers.
func ServeAddressResource(rg *routing.RouteGroup, addressService *services.AddressService) {
r := &addressEndpoint{addressService}
// rg.Get("/addresses/<id>", r.get)
// rg.Get("/addresses", r.query)
rg.Post("/address", r.create)
}
func (r *addressEndpoint) create(c *routing.Context) error {
var model types.UserAddress
if err := c.Read(&model); err != nil {
return err
}
if err := model.Validate(); err != nil {
return err
}
err := r.addressService.Create(&model)
if err != nil {
return err
}
return c.Write(model)
}