add layer3domain show API call
This adds the API call to return all fields for a single layer3domain. This should serve as a nice basis for other parts to be implemented. All fields are put together into a single json document, merged together with the other attributes of the table and then returned to the requester.
This commit is contained in:
parent
e9135c9c10
commit
c22873990b
|
@ -1,6 +1,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"dim/query"
|
"dim/query"
|
||||||
|
@ -43,3 +44,32 @@ func layer3DomainSetAttr(c *Context, req Request, res *Response) error {
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func layer3DomainGetAttr(c *Context, req Request, res *Response) error {
|
||||||
|
name := ""
|
||||||
|
if err := req.ParseAtLeast(1, &name); err != nil {
|
||||||
|
res.AddMessage(LevelError, "could not parse name: %s", err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if name == "" {
|
||||||
|
res.AddMessage(LevelError, "empt name was provided")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
result := json.RawMessage{}
|
||||||
|
selClause := query.FieldsToJSON("l", map[string]string{
|
||||||
|
"name": "name",
|
||||||
|
"modified_by": "l.modified_by",
|
||||||
|
"modified_at": "l.modified_at",
|
||||||
|
"created_by": "l.created_by",
|
||||||
|
"created_at": "l.created_at",
|
||||||
|
})
|
||||||
|
queryStr := fmt.Sprintf(`select %s from layer3domains l where name = $1`, selClause)
|
||||||
|
err := c.tx.QueryRow(queryStr, name).Scan(&result)
|
||||||
|
if err != nil {
|
||||||
|
res.AddMessage(LevelError, "could not return result")
|
||||||
|
return fmt.Errorf("could not get layer3domain '%s': %s - query: %s", name, err, queryStr)
|
||||||
|
}
|
||||||
|
res.Result = result
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
1
main.go
1
main.go
|
@ -66,6 +66,7 @@ func main() {
|
||||||
}
|
}
|
||||||
s.Register("layer3domain_create", layer3DomainCreate)
|
s.Register("layer3domain_create", layer3DomainCreate)
|
||||||
s.Register("layer3domain_list", layer3DomainList)
|
s.Register("layer3domain_list", layer3DomainList)
|
||||||
|
s.Register("layer3domain_get_attr", layer3DomainGetAttr)
|
||||||
s.Register("layer3domain_set_attr", layer3DomainSetAttr)
|
s.Register("layer3domain_set_attr", layer3DomainSetAttr)
|
||||||
s.Register("ipblock_create", ipblockCreate)
|
s.Register("ipblock_create", ipblockCreate)
|
||||||
s.Register("zone_create", zoneCreate)
|
s.Register("zone_create", zoneCreate)
|
||||||
|
|
Loading…
Reference in New Issue