-
Notifications
You must be signed in to change notification settings - Fork 43
/
cell_handlers.go
36 lines (31 loc) · 945 Bytes
/
cell_handlers.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
package handlers
import (
"net/http"
"code.cloudfoundry.org/bbs/models"
"code.cloudfoundry.org/bbs/serviceclient"
"code.cloudfoundry.org/lager/v3"
)
type CellHandler struct {
serviceClient serviceclient.ServiceClient
exitChan chan<- struct{}
}
func NewCellHandler(serviceClient serviceclient.ServiceClient, exitChan chan<- struct{}) *CellHandler {
return &CellHandler{
serviceClient: serviceClient,
exitChan: exitChan,
}
}
func (h *CellHandler) Cells(logger lager.Logger, w http.ResponseWriter, req *http.Request) {
var err error
logger = logger.Session("cells").WithTraceInfo(req)
response := &models.CellsResponse{}
cellSet, err := h.serviceClient.Cells(logger)
cells := []*models.CellPresence{}
for _, cp := range cellSet {
cells = append(cells, cp)
}
response.Cells = cells
response.Error = models.ConvertError(err)
writeResponse(w, response)
exitIfUnrecoverable(logger, h.exitChan, response.Error)
}