mirror of
https://github.com/MirageNetwork/MirageServer.git
synced 2025-09-27 12:52:13 +08:00
38 lines
864 B
Go
38 lines
864 B
Go
package controller
|
||
|
||
import (
|
||
"encoding/json"
|
||
"net/http"
|
||
|
||
"github.com/rs/zerolog/log"
|
||
)
|
||
|
||
func (h *Mirage) ListIdps(
|
||
w http.ResponseWriter,
|
||
r *http.Request,
|
||
) {
|
||
h.doAPIResponse(w, "", h.cfg.IdpList)
|
||
}
|
||
|
||
// API调用的统一响应发报
|
||
// @msg 响应状态:成功时data不为nil则忽略,自动设置为success,否则拼接error-{msg}
|
||
// @data 响应数据:key值为data的json对象
|
||
func (h *Mirage) doAPIResponse(writer http.ResponseWriter, msg string, data interface{}) {
|
||
res := APIResponse{}
|
||
if data != nil {
|
||
res.Status = "success"
|
||
res.Data = data
|
||
} else {
|
||
res.Status = "error-" + msg
|
||
}
|
||
writer.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||
writer.WriteHeader(http.StatusOK)
|
||
err := json.NewEncoder(writer).Encode(&res)
|
||
if err != nil {
|
||
log.Error().
|
||
Caller().
|
||
Err(err).
|
||
Msg("Failed to write response")
|
||
}
|
||
}
|