-
Notifications
You must be signed in to change notification settings - Fork 31
/
area.go
39 lines (35 loc) · 955 Bytes
/
area.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
36
37
38
39
// Copyright 2019-2020 Axetroy. All rights reserved. MIT license.
package area
import (
"github.com/axetroy/go-server/internal/library/router"
"github.com/axetroy/go-server/internal/schema"
"github.com/axetroy/go-server/internal/service/area"
)
type query struct {
Simple bool `json:"simple" url:"simple"` // 简化字段输出
Flatten bool `json:"flatten" url:"flatten"` // 扁平化输出
}
var GetArea = router.Handler(func(c router.Context) {
var query query
c.ResponseFunc(c.ShouldBindQuery(&query), func() schema.Response {
if query.Flatten {
return schema.Response{
Status: schema.StatusSuccess,
Message: "",
Data: area.MapsFlatten,
}
} else if query.Simple {
return schema.Response{
Status: schema.StatusSuccess,
Message: "",
Data: area.MapsSimplified,
}
} else {
return schema.Response{
Status: schema.StatusSuccess,
Message: "",
Data: area.Maps,
}
}
})
})