package response type RespType string const ( RespSuccess RespType = "success" RespCreated RespType = "created" RespAccepted RespType = "accepted" RespNoContent RespType = "noContent" RespRedirect RespType = "redirect" RespDataFormat RespType = "dataFormat" RespUnauthorized RespType = "unauthorized" RespForbidden RespType = "forbidden" RespNotFound RespType = "notFound" RespInternalError RespType = "internalError" ) type RespBody struct { MessageCode MessageCode `json:"messageCode"` Message string `json:"message"` } // default response // swagger:response respDefault type Resp struct { // in: body Body RespBody Status int } func Get(key RespType, c ...MessageCode) Resp { r := Resp{Body: RespBody{}} switch key { case RespSuccess: r.Status = 200 r.Body.MessageCode, r.Body.Message = GetCodeMessage(CodeSuccess) break case RespCreated: r.Status = 201 r.Body.MessageCode, r.Body.Message = GetCodeMessage(CodeCreated) break case RespAccepted: r.Status = 202 r.Body.MessageCode, r.Body.Message = GetCodeMessage(CodeAccepted) break case RespNoContent: r.Status = 204 r.Body.MessageCode, r.Body.Message = GetCodeMessage(CodeNoContent) break case RespRedirect: r.Status = 301 r.Body.MessageCode, r.Body.Message = GetCodeMessage(CodeRedirect) break case RespDataFormat: r.Status = 400 r.Body.MessageCode, r.Body.Message = GetCodeMessage(CodeDataFormat) break case RespUnauthorized: r.Status = 401 r.Body.MessageCode, r.Body.Message = GetCodeMessage(CodeUnauthorized) break case RespForbidden: r.Status = 403 r.Body.MessageCode, r.Body.Message = GetCodeMessage(CodeForbidden) break case RespNotFound: r.Status = 404 r.Body.MessageCode, r.Body.Message = GetCodeMessage(CodeNotFound) break default: r.Status = 500 r.Body.MessageCode, r.Body.Message = GetCodeMessage(CodeInternalError) } if len(c) > 0 { r.Body.MessageCode, r.Body.Message = GetCodeMessage(c[0]) } return r }