mitchell852 closed pull request #2222: Add TO Go 1.1 routes
URL: https://github.com/apache/incubator-trafficcontrol/pull/2222
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/traffic_ops/traffic_ops_golang/asn/asns.go 
b/traffic_ops/traffic_ops_golang/asn/asns.go
index 4a5db6707..ff77b4410 100644
--- a/traffic_ops/traffic_ops_golang/asn/asns.go
+++ b/traffic_ops/traffic_ops_golang/asn/asns.go
@@ -21,8 +21,10 @@ package asn
 
 import (
        "errors"
+       "net/http"
        "fmt"
        "strconv"
+       "encoding/json"
 
        "github.com/apache/incubator-trafficcontrol/lib/go-log"
        "github.com/apache/incubator-trafficcontrol/lib/go-tc"
@@ -39,33 +41,40 @@ import (
 const ASNsPrivLevel = 10
 
 //we need a type alias to define functions on
-type TOASN tc.ASNNullable
+type TOASNV11 tc.ASNNullable
 
-//the refType is passed into the handlers where a copy of its type is used to 
decode the json.
-var refType = TOASN(tc.ASNNullable{})
+type TOASNV12 TOASNV11
 
-func GetRefType() *TOASN {
-       return &refType
+func GetRefTypeV11() *TOASNV11 {
+       asn := TOASNV11(tc.ASNNullable{})
+       return &asn
 }
 
-func (asn TOASN) GetKeyFieldsInfo() []api.KeyFieldInfo {
+func GetRefTypeV12() *TOASNV12 {
+       asn := TOASNV12(tc.ASNNullable{})
+       return &asn
+}
+
+func (asn TOASNV11) GetKeyFieldsInfo() []api.KeyFieldInfo {
        return []api.KeyFieldInfo{{"id", api.GetIntKey}}
 }
 
+// func (asn TOASNV12) GetKeyFieldsInfo() []api.KeyFieldInfo { return 
TOASNV11(asn).GetKeyFieldsInfo() }
+
 //Implementation of the Identifier, Validator interface functions
-func (asn TOASN) GetKeys() (map[string]interface{}, bool) {
+func (asn TOASNV11) GetKeys() (map[string]interface{}, bool) {
        if asn.ID == nil {
                return map[string]interface{}{"id": 0}, false
        }
        return map[string]interface{}{"id": *asn.ID}, true
 }
 
-func (asn *TOASN) SetKeys(keys map[string]interface{}) {
+func (asn *TOASNV11) SetKeys(keys map[string]interface{}) {
        i, _ := keys["id"].(int) //this utilizes the non panicking type 
assertion, if the thrown away ok variable is false i will be the zero of the 
type, 0 here.
        asn.ID = &i
 }
 
-func (asn TOASN) GetAuditName() string {
+func (asn TOASNV11) GetAuditName() string {
        if asn.ASN != nil {
                return strconv.Itoa(*asn.ASN)
        }
@@ -75,11 +84,11 @@ func (asn TOASN) GetAuditName() string {
        return "unknown"
 }
 
-func (asn TOASN) GetType() string {
+func (asn TOASNV11) GetType() string {
        return "asn"
 }
 
-func (asn TOASN) Validate(db *sqlx.DB) []error {
+func (asn TOASNV11) Validate(db *sqlx.DB) []error {
        errs := validation.Errors{
                "asn":          validation.Validate(asn.ASN, validation.NotNil, 
validation.Min(0)),
                "cachegroupId": validation.Validate(asn.CachegroupID, 
validation.NotNil, validation.Min(0)),
@@ -87,14 +96,14 @@ func (asn TOASN) Validate(db *sqlx.DB) []error {
        return tovalidate.ToErrors(errs)
 }
 
-//The TOASN implementation of the Creator interface
+//The TOASNV11 implementation of the Creator interface
 //all implementations of Creator should use transactions and return the proper 
errorType
 //ParsePQUniqueConstraintError is used to determine if a asn with conflicting 
values exists
 //if so, it will return an errorType of DataConflict and the type should be 
appended to the
 //generic error message returned
 //The insert sql returns the id and lastUpdated values of the newly inserted 
asn and have
 //to be added to the struct
-func (asn *TOASN) Create(db *sqlx.DB, user auth.CurrentUser) (error, 
tc.ApiErrorType) {
+func (asn *TOASNV11) Create(db *sqlx.DB, user auth.CurrentUser) (error, 
tc.ApiErrorType) {
        rollbackTransaction := true
        tx, err := db.Beginx()
        defer func() {
@@ -156,9 +165,64 @@ func (asn *TOASN) Create(db *sqlx.DB, user 
auth.CurrentUser) (error, tc.ApiError
        return nil, tc.NoError
 }
 
-func (asn *TOASN) Read(db *sqlx.DB, parameters map[string]string, user 
auth.CurrentUser) ([]interface{}, []error, tc.ApiErrorType) {
-       var rows *sqlx.Rows
+func (asn *TOASNV12) Read(db *sqlx.DB, parameters map[string]string, user 
auth.CurrentUser) ([]interface{}, []error, tc.ApiErrorType) {
+       asns, err, errType := read(db, parameters, user)
+       if len(err) > 0 {
+               return nil, err, errType
+       }
+       iasns := make([]interface{}, len(asns), len(asns))
+       for i, readASN := range asns {
+               iasns[i] = readASN
+       }
+       return iasns, err, errType
+}
+
+// Read implements the /api/1.1/asns/id route for reading individual ASNs.
+// Note this does NOT correctly implement the 1.1 API for all ASNs, because 
that route is in a different format than the CRUD utilities and all other 
routes.
+// The /api/1.1/asns route MUST call V11ReadAll, not this function, to 
correctly implement the 1.1 API.
+func (asn *TOASNV11) Read(db *sqlx.DB, params map[string]string, user 
auth.CurrentUser) ([]interface{}, []error, tc.ApiErrorType) {
+       v12 := TOASNV12(*asn)
+       return v12.Read(db, params, user)
+}
+
+// V11ReadAll implements the asns 1.1 route, which is different from the 1.1 
route for a single ASN and from 1.2+ routes, in that it wraps the content in an 
additional "asns" object.
+func V11ReadAll(db *sqlx.DB) http.HandlerFunc {
+       return func(w http.ResponseWriter, r *http.Request) {
+               handleErrs := tc.GetHandleErrorsFunc(w, r)
+               ctx := r.Context()
+               params, err := api.GetCombinedParams(r)
+               if err != nil {
+                       handleErrs(http.StatusInternalServerError, err)
+                       return
+               }
+               user, err := auth.GetCurrentUser(ctx)
+               if err != nil {
+                       log.Errorf("unable to retrieve current user from 
context: %s", err)
+                       handleErrs(http.StatusInternalServerError, err)
+                       return
+               }
+               asns, errs, errType := read(db, params, *user)
+               if len(errs) > 0 {
+                       tc.HandleErrorsWithType(errs, errType, handleErrs)
+                       return
+               }
+               resp := struct {
+                       Response struct {
+                               ASNs []TOASNV12 `json:"asns"`
+                       } `json:"response"`
+               }{Response: struct {ASNs []TOASNV12  `json:"asns"` }{ASNs: 
asns}}
+
+               respBts, err := json.Marshal(resp)
+               if err != nil {
+                       handleErrs(http.StatusInternalServerError, err)
+                       return
+               }
+               w.Header().Set("Content-Type", "application/json")
+               fmt.Fprintf(w, "%s", respBts)
+       }
+}
 
+func read(db *sqlx.DB, parameters map[string]string, user auth.CurrentUser) 
([]TOASNV12, []error, tc.ApiErrorType) {
        // Query Parameters to Database Query column mappings
        // see the fields mapped in the SQL query
        queryParamsToQueryCols := map[string]dbhelpers.WhereColumnInfo{
@@ -182,9 +246,9 @@ func (asn *TOASN) Read(db *sqlx.DB, parameters 
map[string]string, user auth.Curr
        }
        defer rows.Close()
 
-       ASNs := []interface{}{}
+       ASNs := []TOASNV12{}
        for rows.Next() {
-               var s TOASN
+               var s TOASNV12
                if err = rows.StructScan(&s); err != nil {
                        log.Errorf("error parsing ASN rows: %v", err)
                        return nil, []error{err}, tc.SystemError
@@ -207,12 +271,12 @@ FROM asn a JOIN cachegroup c ON a.cachegroup = c.id`
        return query
 }
 
-//The TOASN implementation of the Updater interface
+//The TOASNV11 implementation of the Updater interface
 //all implementations of Updater should use transactions and return the proper 
errorType
 //ParsePQUniqueConstraintError is used to determine if a asn with conflicting 
values exists
 //if so, it will return an errorType of DataConflict and the type should be 
appended to the
 //generic error message returned
-func (asn *TOASN) Update(db *sqlx.DB, user auth.CurrentUser) (error, 
tc.ApiErrorType) {
+func (asn *TOASNV11) Update(db *sqlx.DB, user auth.CurrentUser) (error, 
tc.ApiErrorType) {
        rollbackTransaction := true
        tx, err := db.Beginx()
        defer func() {
@@ -274,7 +338,7 @@ func (asn *TOASN) Update(db *sqlx.DB, user 
auth.CurrentUser) (error, tc.ApiError
 
 //The ASN implementation of the Deleter interface
 //all implementations of Deleter should use transactions and return the proper 
errorType
-func (asn *TOASN) Delete(db *sqlx.DB, user auth.CurrentUser) (error, 
tc.ApiErrorType) {
+func (asn *TOASNV11) Delete(db *sqlx.DB, user auth.CurrentUser) (error, 
tc.ApiErrorType) {
        rollbackTransaction := true
        tx, err := db.Beginx()
        defer func() {
diff --git a/traffic_ops/traffic_ops_golang/routes.go 
b/traffic_ops/traffic_ops_golang/routes.go
index 3453d19d7..120149fce 100644
--- a/traffic_ops/traffic_ops_golang/routes.go
+++ b/traffic_ops/traffic_ops_golang/routes.go
@@ -72,114 +72,111 @@ func Routes(d ServerData) ([]Route, []RawRoute, 
http.Handler, error) {
        proxyHandler := rootHandler(d)
 
        routes := []Route{
-
-               // ************************************************** 1.2 
Routes 
*************************************************************************************
-               // 1.2 routes are simply a Go replacement for the equivalent 
Perl route. They may or may not conform with the API guidelines 
(https://cwiki.apache.org/confluence/display/TC/API+Guidelines).
+               // 1.1 and 1.2 routes are simply a Go replacement for the 
equivalent Perl route. They may or may not conform with the API guidelines 
(https://cwiki.apache.org/confluence/display/TC/API+Guidelines).
+               // 1.3 routes exist only in a Go. There is NO equivalent Perl 
route. They should conform with the API guidelines 
(https://cwiki.apache.org/confluence/display/TC/API+Guidelines).
 
                //ASN: CRUD
-               {1.2, http.MethodGet, `asns/?(\.json)?$`, 
api.ReadHandler(asn.GetRefType(), d.DB), auth.PrivLevelReadOnly, Authenticated, 
nil},
-               {1.2, http.MethodGet, `asns/{id}$`, 
api.ReadHandler(asn.GetRefType(), d.DB), auth.PrivLevelReadOnly, Authenticated, 
nil},
-               {1.2, http.MethodPut, `asns/{id}$`, 
api.UpdateHandler(asn.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodPost, `asns/?$`, 
api.CreateHandler(asn.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodDelete, `asns/{id}$`, 
api.DeleteHandler(asn.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.2, http.MethodGet, `asns/?(\.json)?$`, 
api.ReadHandler(asn.GetRefTypeV12(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodGet, `asns/?(\.json)?$`, asn.V11ReadAll(d.DB), 
auth.PrivLevelReadOnly, Authenticated, nil},
+               {1.1, http.MethodGet, `asns/{id}$`, 
api.ReadHandler(asn.GetRefTypeV11(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodPut, `asns/{id}$`, 
api.UpdateHandler(asn.GetRefTypeV11(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodPost, `asns/?$`, 
api.CreateHandler(asn.GetRefTypeV11(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodDelete, `asns/{id}$`, 
api.DeleteHandler(asn.GetRefTypeV11(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
 
                //CacheGroup: CRUD
-               {1.2, http.MethodGet, `cachegroups/?(\.json)?$`, 
api.ReadHandler(cachegroup.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodGet, `cachegroups/{id}$`, 
api.ReadHandler(cachegroup.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodPut, `cachegroups/{id}$`, 
api.UpdateHandler(cachegroup.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodPost, `cachegroups/?$`, 
api.CreateHandler(cachegroup.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodDelete, `cachegroups/{id}$`, 
api.DeleteHandler(cachegroup.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodGet, `cachegroups/?(\.json)?$`, 
api.ReadHandler(cachegroup.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodGet, `cachegroups/{id}$`, 
api.ReadHandler(cachegroup.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodPut, `cachegroups/{id}$`, 
api.UpdateHandler(cachegroup.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodPost, `cachegroups/?$`, 
api.CreateHandler(cachegroup.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodDelete, `cachegroups/{id}$`, 
api.DeleteHandler(cachegroup.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
 
                //CDN
-               {1.2, http.MethodGet, `cdns/capacity$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
-               {1.2, http.MethodGet, `cdns/configs$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
-               {1.2, http.MethodGet, `cdns/domains$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
-               {1.2, http.MethodGet, `cdns/health$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
-               {1.2, http.MethodGet, `cdns/routing$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
+               {1.1, http.MethodGet, `cdns/capacity$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
+               {1.1, http.MethodGet, `cdns/configs$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
+               {1.1, http.MethodGet, `cdns/domains$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
+               {1.1, http.MethodGet, `cdns/health$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
+               {1.1, http.MethodGet, `cdns/routing$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
 
                //CDN: CRUD
-               {1.2, http.MethodGet, `cdns/?(\.json)?$`, 
api.ReadHandler(cdn.GetRefType(), d.DB), auth.PrivLevelReadOnly, Authenticated, 
nil},
-               {1.2, http.MethodGet, `cdns/{id}$`, 
api.ReadHandler(cdn.GetRefType(), d.DB), auth.PrivLevelReadOnly, Authenticated, 
nil},
-               {1.2, http.MethodPut, `cdns/{id}$`, 
api.UpdateHandler(cdn.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodPost, `cdns/?$`, 
api.CreateHandler(cdn.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodDelete, `cdns/{id}$`, 
api.DeleteHandler(cdn.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodGet, `cdns/?(\.json)?$`, 
api.ReadHandler(cdn.GetRefType(), d.DB), auth.PrivLevelReadOnly, Authenticated, 
nil},
+               {1.1, http.MethodGet, `cdns/{id}$`, 
api.ReadHandler(cdn.GetRefType(), d.DB), auth.PrivLevelReadOnly, Authenticated, 
nil},
+               {1.1, http.MethodPut, `cdns/{id}$`, 
api.UpdateHandler(cdn.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodPost, `cdns/?$`, 
api.CreateHandler(cdn.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodDelete, `cdns/{id}$`, 
api.DeleteHandler(cdn.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
 
                //CDN: Monitoring: Traffic Monitor
-               {1.2, http.MethodGet, 
`cdns/{name}/configs/monitoring(\.json)?$`, monitoringHandler(d.DB), 
auth.PrivLevelReadOnly, Authenticated, nil},
+               {1.1, http.MethodGet, 
`cdns/{name}/configs/monitoring(\.json)?$`, monitoringHandler(d.DB), 
auth.PrivLevelReadOnly, Authenticated, nil},
 
                //Division: CRUD
-               {1.2, http.MethodGet, `divisions/?(\.json)?$`, 
api.ReadHandler(division.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodGet, `divisions/{id}$`, 
api.ReadHandler(division.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodPut, `divisions/{id}$`, 
api.UpdateHandler(division.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodPost, `divisions/?$`, 
api.CreateHandler(division.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodDelete, `divisions/{id}$`, 
api.DeleteHandler(division.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodGet, `divisions/?(\.json)?$`, 
api.ReadHandler(division.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodGet, `divisions/{id}$`, 
api.ReadHandler(division.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodPut, `divisions/{id}$`, 
api.UpdateHandler(division.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodPost, `divisions/?$`, 
api.CreateHandler(division.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodDelete, `divisions/{id}$`, 
api.DeleteHandler(division.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
 
                //HWInfo
-               {1.2, http.MethodGet, `hwinfo-wip/?(\.json)?$`, 
hwinfo.HWInfoHandler(d.DB), auth.PrivLevelReadOnly, Authenticated, nil},
+               {1.1, http.MethodGet, `hwinfo-wip/?(\.json)?$`, 
hwinfo.HWInfoHandler(d.DB), auth.PrivLevelReadOnly, Authenticated, nil},
 
                //Parameter: CRUD
-               {1.2, http.MethodGet, `parameters/?(\.json)?$`, 
api.ReadHandler(parameter.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodGet, `parameters/{id}$`, 
api.ReadHandler(parameter.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodPut, `parameters/{id}$`, 
api.UpdateHandler(parameter.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodPost, `parameters/?$`, 
api.CreateHandler(parameter.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodDelete, `parameters/{id}$`, 
api.DeleteHandler(parameter.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodGet, `parameters/?(\.json)?$`, 
api.ReadHandler(parameter.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodGet, `parameters/{id}$`, 
api.ReadHandler(parameter.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodPut, `parameters/{id}$`, 
api.UpdateHandler(parameter.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodPost, `parameters/?$`, 
api.CreateHandler(parameter.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodDelete, `parameters/{id}$`, 
api.DeleteHandler(parameter.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
 
                //Phys_Location: CRUD
-               {1.2, http.MethodGet, `phys_locations/?(\.json)?$`, 
api.ReadHandler(physlocation.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodGet, `phys_locations/{id}$`, 
api.ReadHandler(physlocation.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodPut, `phys_locations/{id}$`, 
api.UpdateHandler(physlocation.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodPost, `phys_locations/?$`, 
api.CreateHandler(physlocation.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodDelete, `phys_locations/{id}$`, 
api.DeleteHandler(physlocation.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodGet, `phys_locations/?(\.json)?$`, 
api.ReadHandler(physlocation.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodGet, `phys_locations/{id}$`, 
api.ReadHandler(physlocation.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodPut, `phys_locations/{id}$`, 
api.UpdateHandler(physlocation.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodPost, `phys_locations/?$`, 
api.CreateHandler(physlocation.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodDelete, `phys_locations/{id}$`, 
api.DeleteHandler(physlocation.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
 
                //Ping
-               {1.2, http.MethodGet, `ping$`, ping.PingHandler(), 0, NoAuth, 
nil},
+               {1.1, http.MethodGet, `ping$`, ping.PingHandler(), 0, NoAuth, 
nil},
 
                //Profile: CRUD
-               {1.2, http.MethodGet, `profiles/?(\.json)?$`, 
api.ReadHandler(profile.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodGet, `profiles/{id}$`, 
api.ReadHandler(profile.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodPut, `profiles/{id}$`, 
api.UpdateHandler(profile.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodPost, `profiles/?$`, 
api.CreateHandler(profile.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodDelete, `profiles/{id}$`, 
api.DeleteHandler(profile.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodGet, `profiles/?(\.json)?$`, 
api.ReadHandler(profile.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodGet, `profiles/{id}$`, 
api.ReadHandler(profile.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodPut, `profiles/{id}$`, 
api.UpdateHandler(profile.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodPost, `profiles/?$`, 
api.CreateHandler(profile.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodDelete, `profiles/{id}$`, 
api.DeleteHandler(profile.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
 
                //Region: CRUD
-               {1.2, http.MethodGet, `regions/?(\.json)?$`, 
api.ReadHandler(region.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodGet, `regions/{id}$`, 
api.ReadHandler(region.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodPut, `regions/{id}$`, 
api.UpdateHandler(region.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodPost, `regions/?$`, 
api.CreateHandler(region.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodDelete, `regions/{id}$`, 
api.DeleteHandler(region.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodGet, `regions/?(\.json)?$`, 
api.ReadHandler(region.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodGet, `regions/{id}$`, 
api.ReadHandler(region.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodPut, `regions/{id}$`, 
api.UpdateHandler(region.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodPost, `regions/?$`, 
api.CreateHandler(region.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodDelete, `regions/{id}$`, 
api.DeleteHandler(region.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
 
                //Server
-               {1.2, http.MethodGet, `servers/checks$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
-               {1.2, http.MethodGet, `servers/details$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
-               {1.2, http.MethodGet, `servers/status$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
-               {1.2, http.MethodGet, `servers/totals$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
+               {1.1, http.MethodGet, `servers/checks$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
+               {1.1, http.MethodGet, `servers/details$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
+               {1.1, http.MethodGet, `servers/status$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
+               {1.1, http.MethodGet, `servers/totals$`, 
handlerToFunc(proxyHandler), 0, NoAuth, []Middleware{}},
 
                //Server: CRUD
-               {1.2, http.MethodGet, `servers/?(\.json)?$`, 
api.ReadHandler(server.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodGet, `servers/{id}$`, 
api.ReadHandler(server.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodPut, `servers/{id}$`, 
api.UpdateHandler(server.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodPost, `servers/?$`, 
api.CreateHandler(server.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodDelete, `servers/{id}$`, 
api.DeleteHandler(server.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodGet, `servers/?(\.json)?$`, 
api.ReadHandler(server.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodGet, `servers/{id}$`, 
api.ReadHandler(server.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodPut, `servers/{id}$`, 
api.UpdateHandler(server.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodPost, `servers/?$`, 
api.CreateHandler(server.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodDelete, `servers/{id}$`, 
api.DeleteHandler(server.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
 
                //Status: CRUD
-               {1.2, http.MethodGet, `statuses/?(\.json)?$`, 
api.ReadHandler(status.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodGet, `statuses/{id}$`, 
api.ReadHandler(status.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodPut, `statuses/{id}$`, 
api.UpdateHandler(status.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodPost, `statuses/?$`, 
api.CreateHandler(status.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodDelete, `statuses/{id}$`, 
api.DeleteHandler(status.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodGet, `statuses/?(\.json)?$`, 
api.ReadHandler(status.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodGet, `statuses/{id}$`, 
api.ReadHandler(status.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodPut, `statuses/{id}$`, 
api.UpdateHandler(status.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodPost, `statuses/?$`, 
api.CreateHandler(status.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodDelete, `statuses/{id}$`, 
api.DeleteHandler(status.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
 
                //System
-               {1.2, http.MethodGet, `system/info/?(\.json)?$`, 
systeminfo.Handler(d.DB), auth.PrivLevelReadOnly, Authenticated, nil},
+               {1.1, http.MethodGet, `system/info/?(\.json)?$`, 
systeminfo.Handler(d.DB), auth.PrivLevelReadOnly, Authenticated, nil},
 
                //Type: CRUD
-               {1.2, http.MethodGet, `types/?(\.json)?$`, 
api.ReadHandler(types.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodGet, `types/{id}$`, 
api.ReadHandler(types.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
-               {1.2, http.MethodPut, `types/{id}$`, 
api.UpdateHandler(types.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodPost, `types/?$`, 
api.CreateHandler(types.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-               {1.2, http.MethodDelete, `types/{id}$`, 
api.DeleteHandler(types.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
-
-               // ************************************************** 1.3 
Routes 
*************************************************************************************
-               // 1.3 routes exist only in a Go. There is NO equivalent Perl 
route. They should conform with the API guidelines 
(https://cwiki.apache.org/confluence/display/TC/API+Guidelines).
+               {1.1, http.MethodGet, `types/?(\.json)?$`, 
api.ReadHandler(types.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodGet, `types/{id}$`, 
api.ReadHandler(types.GetRefType(), d.DB), auth.PrivLevelReadOnly, 
Authenticated, nil},
+               {1.1, http.MethodPut, `types/{id}$`, 
api.UpdateHandler(types.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodPost, `types/?$`, 
api.CreateHandler(types.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
+               {1.1, http.MethodDelete, `types/{id}$`, 
api.DeleteHandler(types.GetRefType(), d.DB), auth.PrivLevelOperations, 
Authenticated, nil},
 
                //About
                {1.3, http.MethodGet, `about/?(\.json)?$`, about.Handler(), 
auth.PrivLevelReadOnly, Authenticated, nil},
@@ -222,10 +219,10 @@ func Routes(d ServerData) ([]Route, []RawRoute, 
http.Handler, error) {
                {1.3, http.MethodPost, 
`deliveryservices-wip/hostname/{hostName}/sslkeys/add$`, 
addDeliveryServiceSSLKeysHandler(d.DB, d.Config), auth.PrivLevelAdmin, 
Authenticated, nil},
 
                //CRConfig
-               {1.2, http.MethodGet, `cdns/{cdn}/snapshot/?$`, 
crconfig.SnapshotGetHandler(d.DB, d.Config), crconfig.PrivLevel, Authenticated, 
nil},
-               {1.2, http.MethodGet, `cdns/{cdn}/snapshot/new/?$`, 
crconfig.Handler(d.DB, d.Config), crconfig.PrivLevel, Authenticated, nil},
-               {1.2, http.MethodPut, `cdns/{id}/snapshot/?$`, 
crconfig.SnapshotHandler(d.DB, d.Config), crconfig.PrivLevel, Authenticated, 
nil},
-               {1.2, http.MethodPut, `snapshot/{cdn}/?$`, 
crconfig.SnapshotHandler(d.DB, d.Config), crconfig.PrivLevel, Authenticated, 
nil},
+               {1.1, http.MethodGet, `cdns/{cdn}/snapshot/?$`, 
crconfig.SnapshotGetHandler(d.DB, d.Config), crconfig.PrivLevel, Authenticated, 
nil},
+               {1.1, http.MethodGet, `cdns/{cdn}/snapshot/new/?$`, 
crconfig.Handler(d.DB, d.Config), crconfig.PrivLevel, Authenticated, nil},
+               {1.1, http.MethodPut, `cdns/{id}/snapshot/?$`, 
crconfig.SnapshotHandler(d.DB, d.Config), crconfig.PrivLevel, Authenticated, 
nil},
+               {1.1, http.MethodPut, `snapshot/{cdn}/?$`, 
crconfig.SnapshotHandler(d.DB, d.Config), crconfig.PrivLevel, Authenticated, 
nil},
        }
 
        // rawRoutes are served at the root path. These should be almost 
exclusively old Perl pre-API routes, which have yet to be converted in all 
clients. New routes should be in the versioned API path.


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to