Files
oceanbase/tools/ob-configserver/server/response.go
2022-05-30 16:44:36 +08:00

82 lines
2.1 KiB
Go

/**
* Copyright (c) 2021 OceanBase
* OceanBase CE is licensed under Mulan PubL v2.
* You can use this software according to the terms and conditions of the Mulan PubL v2.
* You may obtain a copy of Mulan PubL v2 at:
* http://license.coscl.org.cn/MulanPubL-2.0
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PubL v2 for more details.
*/
package server
import (
"fmt"
"net/http"
)
type ApiResponse struct {
Code int `json:"Code"`
Message string `json:"Message"`
Successful bool `json:"Success"`
Data interface{} `json:"Data"`
TraceId string `json:"Trace"`
Server string `json:"Server"`
Cost int64 `json:"Cost"`
}
type IterableData struct {
Contents interface{} `json:"Contents"`
}
func NewSuccessResponse(data interface{}) *ApiResponse {
return &ApiResponse{
Code: http.StatusOK,
Message: "successful",
Successful: true,
Data: data,
}
}
func NewBadRequestResponse(err error) *ApiResponse {
return &ApiResponse{
Code: http.StatusBadRequest,
Message: fmt.Sprintf("bad request: %v", err),
Successful: false,
}
}
func NewIllegalArgumentResponse(err error) *ApiResponse {
return &ApiResponse{
Code: http.StatusBadRequest,
Message: fmt.Sprintf("illegal argument: %v", err),
Successful: false,
}
}
func NewNotFoundResponse(err error) *ApiResponse {
return &ApiResponse{
Code: http.StatusNotFound,
Message: fmt.Sprintf("resource not found: %v", err),
Successful: false,
}
}
func NewNotImplementedResponse(err error) *ApiResponse {
return &ApiResponse{
Code: http.StatusNotImplemented,
Message: fmt.Sprintf("request not implemented: %v", err),
Successful: false,
}
}
func NewErrorResponse(err error) *ApiResponse {
return &ApiResponse{
Code: http.StatusInternalServerError,
Message: fmt.Sprintf("got internal error: %v", err),
Successful: false,
}
}