projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
18805: add a 'static' go build tag that disables the pam login code,
[arvados.git]
/
lib
/
controller
/
router
/
response.go
diff --git
a/lib/controller/router/response.go
b/lib/controller/router/response.go
index 500fb307171c4f59442aca8cbf503092ee7232a6..c0c599be8bcd4f1acb6fbbc5ed90e6541cf08dfe 100644
(file)
--- a/
lib/controller/router/response.go
+++ b/
lib/controller/router/response.go
@@
-26,6
+26,10
@@
type responseOptions struct {
func (rtr *router) responseOptions(opts interface{}) (responseOptions, error) {
var rOpts responseOptions
switch opts := opts.(type) {
func (rtr *router) responseOptions(opts interface{}) (responseOptions, error) {
var rOpts responseOptions
switch opts := opts.(type) {
+ case *arvados.CreateOptions:
+ rOpts.Select = opts.Select
+ case *arvados.UpdateOptions:
+ rOpts.Select = opts.Select
case *arvados.GetOptions:
rOpts.Select = opts.Select
case *arvados.ListOptions:
case *arvados.GetOptions:
rOpts.Select = opts.Select
case *arvados.ListOptions:
@@
-57,7
+61,7
@@
func applySelectParam(selectParam []string, orig map[string]interface{}) map[str
return selected
}
return selected
}
-func (rtr *router) sendResponse(w http.ResponseWriter, req *http.Request, resp interface{}, opts responseOptions
, reqId string
) {
+func (rtr *router) sendResponse(w http.ResponseWriter, req *http.Request, resp interface{}, opts responseOptions) {
var tmp map[string]interface{}
if resp, ok := resp.(http.Handler); ok {
var tmp map[string]interface{}
if resp, ok := resp.(http.Handler); ok {
@@
-67,7
+71,6
@@
func (rtr *router) sendResponse(w http.ResponseWriter, req *http.Request, resp i
return
}
return
}
- w.Header().Set("X-Request-Id", reqId)
err := rtr.transcode(resp, &tmp)
if err != nil {
rtr.sendError(w, err)
err := rtr.transcode(resp, &tmp)
if err != nil {
rtr.sendError(w, err)
@@
-135,6
+138,7
@@
func (rtr *router) sendError(w http.ResponseWriter, err error) {
}
var infixMap = map[string]interface{}{
}
var infixMap = map[string]interface{}{
+ "gj3su": arvados.APIClientAuthorization{},
"4zz18": arvados.Collection{},
"xvhdp": arvados.ContainerRequest{},
"dz642": arvados.Container{},
"4zz18": arvados.Collection{},
"xvhdp": arvados.ContainerRequest{},
"dz642": arvados.Container{},
@@
-147,6
+151,11
@@
var infixMap = map[string]interface{}{
"7fd4e": arvados.Workflow{},
}
"7fd4e": arvados.Workflow{},
}
+var specialKindTransforms = map[string]string{
+ "arvados.APIClientAuthorization": "arvados#apiClientAuthorization",
+ "arvados.APIClientAuthorizationList": "arvados#apiClientAuthorizationList",
+}
+
var mungeKind = regexp.MustCompile(`\..`)
func kind(resp interface{}) string {
var mungeKind = regexp.MustCompile(`\..`)
func kind(resp interface{}) string {
@@
-154,6
+163,9
@@
func kind(resp interface{}) string {
if !strings.HasPrefix(t, "arvados.") {
return ""
}
if !strings.HasPrefix(t, "arvados.") {
return ""
}
+ if k, ok := specialKindTransforms[t]; ok {
+ return k
+ }
return mungeKind.ReplaceAllStringFunc(t, func(s string) string {
// "arvados.CollectionList" => "arvados#collectionList"
return "#" + strings.ToLower(s[1:])
return mungeKind.ReplaceAllStringFunc(t, func(s string) string {
// "arvados.CollectionList" => "arvados#collectionList"
return "#" + strings.ToLower(s[1:])