This is an automated email from the ASF dual-hosted git repository. dangogh pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-trafficcontrol.git
commit 59e8aab565adff9c7e17ed88fc1afae9277b6894 Author: Dewayne Richardson <dewr...@apache.org> AuthorDate: Tue Feb 20 08:06:56 2018 -0700 updated regions to use the CRUD interface --- lib/go-tc/regions.go | 2 +- traffic_ops/traffic_ops_golang/region/regions.go | 30 ++++++++++------------ .../traffic_ops_golang/region/regions_test.go | 29 +++++++-------------- 3 files changed, 24 insertions(+), 37 deletions(-) diff --git a/lib/go-tc/regions.go b/lib/go-tc/regions.go index 9c4edc3..d32556c 100644 --- a/lib/go-tc/regions.go +++ b/lib/go-tc/regions.go @@ -24,7 +24,7 @@ type RegionsResponse struct { } type Region struct { - DivisionName string `json:"divisionName" db:"divisionname"` + DivisionName string `json:"divisionName"` Division int `json:"division" db:"division"` ID int `json:"id" db:"id"` LastUpdated Time `json:"lastUpdated" db:"last_updated"` diff --git a/traffic_ops/traffic_ops_golang/region/regions.go b/traffic_ops/traffic_ops_golang/region/regions.go index cc9ed61..7c1153b 100644 --- a/traffic_ops/traffic_ops_golang/region/regions.go +++ b/traffic_ops/traffic_ops_golang/region/regions.go @@ -73,17 +73,16 @@ func (region *TORegion) Read(db *sqlx.DB, parameters map[string]string, user aut // Query Parameters to Database Query column mappings // see the fields mapped in the SQL query queryParamsToQueryCols := map[string]dbhelpers.WhereColumnInfo{ - "domainName": dbhelpers.WhereColumnInfo{"domain_name", nil}, - "dnssecEnabled": dbhelpers.WhereColumnInfo{"dnssec_enabled", nil}, - "id": dbhelpers.WhereColumnInfo{"id", api.IsInt}, - "name": dbhelpers.WhereColumnInfo{"name", nil}, + "name": dbhelpers.WhereColumnInfo{"name", nil}, + "division": dbhelpers.WhereColumnInfo{"division", nil}, + "id": dbhelpers.WhereColumnInfo{"id", api.IsInt}, } where, orderBy, queryValues, errs := dbhelpers.BuildWhereAndOrderBy(parameters, queryParamsToQueryCols) if len(errs) > 0 { return nil, errs, tc.DataConflictError } - query := selectRegionsQuery() + where + orderBy + query := selectQuery() + where + orderBy log.Debugln("Query is ", query) rows, err := db.NamedQuery(query, queryValues) @@ -106,15 +105,16 @@ func (region *TORegion) Read(db *sqlx.DB, parameters map[string]string, user aut return Regions, []error{}, tc.NoError } -func selectRegionsQuery() string { - query := `SELECT -description, -division, -id, -last_updated, -name +func selectQuery() string { -FROM region r` + query := `SELECT +r.division, +d.name as divisionname, +r.id, +r.last_updated, +r.name +FROM region r +JOIN division d ON r.division = d.id` return query } @@ -300,7 +300,6 @@ func (region *TORegion) Delete(db *sqlx.DB, user auth.CurrentUser) (error, tc.Ap func updateQuery() string { query := `UPDATE region SET -description=:description, division=:division, name=:name WHERE id=:id RETURNING last_updated` @@ -309,11 +308,10 @@ WHERE id=:id RETURNING last_updated` func insertQuery() string { query := `INSERT INTO region ( -description, division, name) VALUES ( -:description, :division, +:name, :name) RETURNING id,last_updated` return query } diff --git a/traffic_ops/traffic_ops_golang/region/regions_test.go b/traffic_ops/traffic_ops_golang/region/regions_test.go index b4fac20..b0d8446 100644 --- a/traffic_ops/traffic_ops_golang/region/regions_test.go +++ b/traffic_ops/traffic_ops_golang/region/regions_test.go @@ -24,6 +24,7 @@ import ( "time" "github.com/apache/incubator-trafficcontrol/lib/go-tc" + "github.com/apache/incubator-trafficcontrol/traffic_ops/traffic_ops_golang/auth" "github.com/apache/incubator-trafficcontrol/traffic_ops/traffic_ops_golang/test" "github.com/jmoiron/sqlx" @@ -47,7 +48,7 @@ func getTestRegions() []tc.Region { return regions } -func TestGetRegions(t *testing.T) { +func TestReadRegions(t *testing.T) { mockDB, mock, err := sqlmock.New() if err != nil { t.Fatalf("an error '%s' was not expected when opening a stub database connection", err) @@ -57,13 +58,14 @@ func TestGetRegions(t *testing.T) { db := sqlx.NewDb(mockDB, "sqlmock") defer db.Close() - testCase := getTestRegions() + refType := GetRefType() + + testRegions := getTestRegions() cols := test.ColsFromStructByTag("db", tc.Region{}) rows := sqlmock.NewRows(cols) - for _, ts := range testCase { + for _, ts := range testRegions { rows = rows.AddRow( - ts.DivisionName, ts.Division, ts.ID, ts.LastUpdated, @@ -73,25 +75,12 @@ func TestGetRegions(t *testing.T) { mock.ExpectQuery("SELECT").WillReturnRows(rows) v := map[string]string{"dsId": "1"} - servers, errs, errType := getRegions(v, db) + servers, errs, _ := refType.Read(db, v, auth.CurrentUser{}) if len(errs) > 0 { - t.Errorf("getRegions expected: no errors, actual: %v with error type: %s", errs, errType.String()) + t.Errorf("cdn.Read expected: no errors, actual: %v", errs) } if len(servers) != 2 { - t.Errorf("getRegions expected: len(servers) == 1, actual: %v", len(servers)) + t.Errorf("cdn.Read expected: len(servers) == 2, actual: %v", len(servers)) } - -} - -type SortableRegions []tc.Region - -func (s SortableRegions) Len() int { - return len(s) -} -func (s SortableRegions) Swap(i, j int) { - s[i], s[j] = s[j], s[i] -} -func (s SortableRegions) Less(i, j int) bool { - return s[i].Name < s[j].Name } -- To stop receiving notification emails like this one, please contact dang...@apache.org.