From 65e1b409b0b7920f3c223103ef33d63b5acafd74 Mon Sep 17 00:00:00 2001 From: TeoV Date: Sun, 11 Feb 2018 12:12:41 +0200 Subject: [PATCH] Refactoring code and Update struct for Suppliers ( SoringParams -> SoringParameters) --- apier/v1/filter_indexes_it_test.go | 20 ++++++------ apier/v1/suppliers_it_test.go | 10 +++--- apier/v1/tpsuppliers_it_test.go | 4 +-- .../mysql/create_tariffplan_tables.sql | 2 +- .../postgres/create_tariffplan_tables.sql | 2 +- data/tariffplans/testit/Suppliers.csv | 2 +- data/tariffplans/testtp/Suppliers.csv | 2 +- data/tariffplans/tutorial/Suppliers.csv | 2 +- engine/filterindexer_it_test.go | 4 +-- engine/loader_csv_test.go | 6 ++-- engine/model_helpers.go | 27 +++++++++------- engine/models.go | 2 +- engine/onstor_it_test.go | 4 +-- engine/storage_mongo_datadb.go | 7 ++-- engine/storage_redis.go | 1 - engine/suppliers.go | 2 +- engine/suppliers_test.go | 32 +++++++++---------- migrator/migrator_it_test.go | 6 ++-- utils/apitpdata.go | 2 +- 19 files changed, 70 insertions(+), 67 deletions(-) diff --git a/apier/v1/filter_indexes_it_test.go b/apier/v1/filter_indexes_it_test.go index c5a110274..b32dbbd50 100644 --- a/apier/v1/filter_indexes_it_test.go +++ b/apier/v1/filter_indexes_it_test.go @@ -1009,11 +1009,11 @@ func testV1FIdxSetSupplierProfileIndexes(t *testing.T) { t.Error(err) } splPrf = &engine.SupplierProfile{ - Tenant: "cgrates.org", - ID: "TEST_PROFILE1", - FilterIDs: []string{"FLTR_1"}, - Sorting: "Sort1", - SortingParams: []string{"Param1", "Param2"}, + Tenant: "cgrates.org", + ID: "TEST_PROFILE1", + FilterIDs: []string{"FLTR_1"}, + Sorting: "Sort1", + SortingParameters: []string{"Param1", "Param2"}, Suppliers: []*engine.Supplier{ &engine.Supplier{ ID: "SPL1", @@ -1118,11 +1118,11 @@ func testV1FIdxSetSecondSupplierProfileIndexes(t *testing.T) { t.Error(err) } splPrf = &engine.SupplierProfile{ - Tenant: "cgrates.org", - ID: "TEST_PROFILE2", - FilterIDs: []string{"FLTR_2"}, - Sorting: "Sort1", - SortingParams: []string{"Param1", "Param2"}, + Tenant: "cgrates.org", + ID: "TEST_PROFILE2", + FilterIDs: []string{"FLTR_2"}, + Sorting: "Sort1", + SortingParameters: []string{"Param1", "Param2"}, Suppliers: []*engine.Supplier{ &engine.Supplier{ ID: "SPL1", diff --git a/apier/v1/suppliers_it_test.go b/apier/v1/suppliers_it_test.go index 93d17494f..42766c3a5 100644 --- a/apier/v1/suppliers_it_test.go +++ b/apier/v1/suppliers_it_test.go @@ -257,11 +257,11 @@ func testV1SplSSetSupplierProfiles(t *testing.T) { t.Error(err) } splPrf = &engine.SupplierProfile{ - Tenant: "cgrates.org", - ID: "TEST_PROFILE1", - FilterIDs: []string{"FLTR_1"}, - Sorting: "Sort1", - SortingParams: []string{"Param1", "Param2"}, + Tenant: "cgrates.org", + ID: "TEST_PROFILE1", + FilterIDs: []string{"FLTR_1"}, + Sorting: "Sort1", + SortingParameters: []string{"Param1", "Param2"}, Suppliers: []*engine.Supplier{ &engine.Supplier{ ID: "SPL1", diff --git a/apier/v1/tpsuppliers_it_test.go b/apier/v1/tpsuppliers_it_test.go index 2e6069169..4b62d4b3a 100644 --- a/apier/v1/tpsuppliers_it_test.go +++ b/apier/v1/tpsuppliers_it_test.go @@ -131,8 +131,8 @@ func testTPSplPrfSetTPSplPrf(t *testing.T) { ActivationTime: "2014-07-29T15:00:00Z", ExpiryTime: "", }, - Sorting: "*lowest_cost", - SortingParams: []string{}, + Sorting: "*lowest_cost", + SortingParameters: []string{}, Suppliers: []*utils.TPSupplier{ &utils.TPSupplier{ ID: "supplier1", diff --git a/data/storage/mysql/create_tariffplan_tables.sql b/data/storage/mysql/create_tariffplan_tables.sql index 2447b27fa..a88b303e1 100644 --- a/data/storage/mysql/create_tariffplan_tables.sql +++ b/data/storage/mysql/create_tariffplan_tables.sql @@ -502,7 +502,7 @@ CREATE TABLE tp_suppliers ( `filter_ids` varchar(64) NOT NULL, `activation_interval` varchar(64) NOT NULL, `sorting` varchar(32) NOT NULL, - `sorting_params` varchar(64) NOT NULL, + `sorting_parameters` varchar(64) NOT NULL, `supplier_id` varchar(32) NOT NULL, `supplier_filter_ids` varchar(64) NOT NULL, `supplier_account_ids` varchar(64) NOT NULL, diff --git a/data/storage/postgres/create_tariffplan_tables.sql b/data/storage/postgres/create_tariffplan_tables.sql index d5e56bf1e..f4d07a645 100644 --- a/data/storage/postgres/create_tariffplan_tables.sql +++ b/data/storage/postgres/create_tariffplan_tables.sql @@ -494,7 +494,7 @@ CREATE TABLE tp_suppliers ( "filter_ids" varchar(64) NOT NULL, "activation_interval" varchar(64) NOT NULL, "sorting" varchar(32) NOT NULL, - "sorting_params" varchar(64) NOT NULL, + "sorting_parameters" varchar(64) NOT NULL, "supplier_id" varchar(32) NOT NULL, "supplier_filter_ids" varchar(64) NOT NULL, "supplier_account_ids" varchar(64) NOT NULL, diff --git a/data/tariffplans/testit/Suppliers.csv b/data/tariffplans/testit/Suppliers.csv index 899fdf1b6..2696dbf90 100644 --- a/data/tariffplans/testit/Suppliers.csv +++ b/data/tariffplans/testit/Suppliers.csv @@ -1,3 +1,3 @@ -#Tenant,ID,FilterIDs,ActivationInterval,Sorting,SortingParams,SupplierID,SupplierFilterIDs,SupplierAccountIDs,SupplierRatingPlanIDs,SupplierResourceIDs,SupplierStatIDs,SupplierWeight,SupplierBlocker,SupplierParameters,Weight +#Tenant,ID,FilterIDs,ActivationInterval,Sorting,SortingParameters,SupplierID,SupplierFilterIDs,SupplierAccountIDs,SupplierRatingPlanIDs,SupplierResourceIDs,SupplierStatIDs,SupplierWeight,SupplierBlocker,SupplierParameters,Weight cgrates.org,SPL_ACNT_1001,FLTR_ACCOUNT_1001,,*weight,,supplier1,,,,,,20,,,10 cgrates.org,SPL_ACNT_1001,,,,,supplier2,,,,,,10,,, diff --git a/data/tariffplans/testtp/Suppliers.csv b/data/tariffplans/testtp/Suppliers.csv index 00f288d36..ed9085b62 100644 --- a/data/tariffplans/testtp/Suppliers.csv +++ b/data/tariffplans/testtp/Suppliers.csv @@ -1,4 +1,4 @@ -#Tenant,ID,FilterIDs,ActivationInterval,Sorting,SortingParams,SupplierID,SupplierFilterIDs,SupplierAccountIDs,SupplierRatingPlanIDs,SupplierResourceIDs,SupplierStatIDs,SupplierWeight,SupplierBlocker,SupplierParameters,Weight +#Tenant,ID,FilterIDs,ActivationInterval,Sorting,SortingParameters,SupplierID,SupplierFilterIDs,SupplierAccountIDs,SupplierRatingPlanIDs,SupplierResourceIDs,SupplierStatIDs,SupplierWeight,SupplierBlocker,SupplierParameters,Weight cgrates.org,SPP_1,FLTR_ACNT_dan;FLTR_DST_DE,2017-07-29T15:00:00Z,*lowest_cost,,supplier1,FLTR_ACNT_dan,,RPL_1,ResGroup1,Stat1,10,false,SortingParameter1,10 cgrates.org,SPL_WEIGHT_1,FLTR_DST_DE;FLTR_ACNT_1007,2017-11-27T00:00:00Z,*weight,,supplier1,,,,,,10,,,10 cgrates.org,SPL_WEIGHT_1,FLTR_DST_DE,,,,supplier2,,,,,,20,,, diff --git a/data/tariffplans/tutorial/Suppliers.csv b/data/tariffplans/tutorial/Suppliers.csv index 367cd6b73..835129fac 100644 --- a/data/tariffplans/tutorial/Suppliers.csv +++ b/data/tariffplans/tutorial/Suppliers.csv @@ -1,4 +1,4 @@ -#Tenant,ID,FilterIDs,ActivationInterval,Sorting,SortingParams,SupplierID,SupplierFilterIDs,SupplierAccountIDs,SupplierRatingPlanIDs,SupplierResourceIDs,SupplierStatIDs,SupplierWeight,SupplierBlocker,SupplierParameters,Weight +#Tenant,ID,FilterIDs,ActivationInterval,Sorting,SortingParamameters,SupplierID,SupplierFilterIDs,SupplierAccountIDs,SupplierRatingPlanIDs,SupplierResourceIDs,SupplierStatIDs,SupplierWeight,SupplierBlocker,SupplierParameters,Weight cgrates.org,SPL_WEIGHT_2,,2017-11-27T00:00:00Z,*weight,,supplier1,,,,,,10,,,5 cgrates.org,SPL_WEIGHT_1,FLTR_DST_DE;FLTR_ACNT_1007,2017-11-27T00:00:00Z,*weight,,supplier1,,,,,,10,,,10 cgrates.org,SPL_WEIGHT_1,FLTR_DST_DE,,,,supplier2,,,,,,20,,, diff --git a/engine/filterindexer_it_test.go b/engine/filterindexer_it_test.go index bc1f68b4f..15d535c1b 100644 --- a/engine/filterindexer_it_test.go +++ b/engine/filterindexer_it_test.go @@ -929,8 +929,8 @@ func testITTestIndexingWithEmptyFltrID2(t *testing.T) { ActivationInterval: &utils.ActivationInterval{ ActivationTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC), }, - Sorting: "*weight", - SortingParams: []string{}, + Sorting: "*weight", + SortingParameters: []string{}, Suppliers: []*Supplier{ &Supplier{ ID: "supplier1", diff --git a/engine/loader_csv_test.go b/engine/loader_csv_test.go index 380e291ea..e04a5befa 100755 --- a/engine/loader_csv_test.go +++ b/engine/loader_csv_test.go @@ -291,7 +291,7 @@ cgrates.org,FLTR_DST_DE,*destinations,Destination,DST_DE,2014-07-29T15:00:00Z cgrates.org,FLTR_DST_NL,*destinations,Destination,DST_NL,2014-07-29T15:00:00Z ` sppProfiles = ` -#Tenant,ID,FilterIDs,ActivationInterval,Sorting,SortingParams,SupplierID,SupplierFilterIDs,SupplierAccountIDs,SupplierRatingPlanIDs,SupplierResourceIDs,SupplierStatIDs,SupplierWeight,SupplierBlocker,SupplierParameters,Weight +#Tenant,ID,FilterIDs,ActivationInterval,Sorting,SortingParameters,SupplierID,SupplierFilterIDs,SupplierAccountIDs,SupplierRatingPlanIDs,SupplierResourceIDs,SupplierStatIDs,SupplierWeight,SupplierBlocker,SupplierParameters,Weight cgrates.org,SPP_1,FLTR_ACNT_dan,2014-07-29T15:00:00Z,*lowest_cost,,supplier1,FLTR_ACNT_dan,Account1;Account1_1,RPL_1,ResGroup1,Stat1,10,true,param1,20 cgrates.org,SPP_1,,,,,supplier1,,,RPL_2,ResGroup2,,10,,, cgrates.org,SPP_1,,,,,supplier1,FLTR_DST_DE,Account2,RPL_3,ResGroup3,Stat2,10,,, @@ -1641,8 +1641,8 @@ func TestLoadSupplierProfiles(t *testing.T) { ActivationInterval: &utils.TPActivationInterval{ ActivationTime: "2014-07-29T15:00:00Z", }, - Sorting: "*lowest_cost", - SortingParams: []string{}, + Sorting: "*lowest_cost", + SortingParameters: []string{}, Suppliers: []*utils.TPSupplier{ &utils.TPSupplier{ ID: "supplier1", diff --git a/engine/model_helpers.go b/engine/model_helpers.go index dc4364599..b66b6de3a 100755 --- a/engine/model_helpers.go +++ b/engine/model_helpers.go @@ -2475,11 +2475,11 @@ func (tps TpSuppliers) AsTPSuppliers() (result []*utils.TPSupplierProfile) { th, found := mst[tp.ID] if !found { th = &utils.TPSupplierProfile{ - TPid: tp.Tpid, - Tenant: tp.Tenant, - ID: tp.ID, - Sorting: tp.Sorting, - SortingParams: []string{}, + TPid: tp.Tpid, + Tenant: tp.Tenant, + ID: tp.ID, + Sorting: tp.Sorting, + SortingParameters: []string{}, } } if tp.SupplierID != "" { @@ -2500,7 +2500,6 @@ func (tps TpSuppliers) AsTPSuppliers() (result []*utils.TPSupplierProfile) { if tp.SupplierFilterIDs != "" { supFilterSplit := strings.Split(tp.SupplierFilterIDs, utils.INFIELD_SEP) sup.FilterIDs = append(sup.FilterIDs, supFilterSplit...) - } if tp.SupplierRatingplanIDs != "" { ratingPlanSplit := strings.Split(tp.SupplierRatingplanIDs, utils.INFIELD_SEP) @@ -2520,9 +2519,9 @@ func (tps TpSuppliers) AsTPSuppliers() (result []*utils.TPSupplierProfile) { } suppliersMap[tp.ID][tp.SupplierID] = sup } - if tp.SortingParams != "" { - sortingParamSplit := strings.Split(tp.SortingParams, utils.INFIELD_SEP) - th.SortingParams = append(th.SortingParams, sortingParamSplit...) + if tp.SortingParameters != "" { + sortingParameterSplit := strings.Split(tp.SortingParameters, utils.INFIELD_SEP) + th.SortingParameters = append(th.SortingParameters, sortingParameterSplit...) } if tp.Weight != 0 { th.Weight = tp.Weight @@ -2591,6 +2590,12 @@ func APItoModelTPSuppliers(st *utils.TPSupplierProfile) (mdls TpSuppliers) { } mdl.FilterIDs += val } + for i, val := range st.SortingParameters { + if i != 0 { + mdl.SortingParameters += utils.INFIELD_SEP + } + mdl.SortingParameters += val + } if st.ActivationInterval != nil { if st.ActivationInterval.ActivationTime != "" { mdl.ActivationInterval = st.ActivationInterval.ActivationTime @@ -2646,8 +2651,8 @@ func APItoSupplierProfile(tpTH *utils.TPSupplierProfile, timezone string) (th *S Weight: tpTH.Weight, Suppliers: make([]*Supplier, len(tpTH.Suppliers)), } - for _, stp := range tpTH.SortingParams { - th.SortingParams = append(th.SortingParams, stp) + for _, stp := range tpTH.SortingParameters { + th.SortingParameters = append(th.SortingParameters, stp) } for _, fli := range tpTH.FilterIDs { th.FilterIDs = append(th.FilterIDs, fli) diff --git a/engine/models.go b/engine/models.go index 75644888c..1bcb10a5a 100755 --- a/engine/models.go +++ b/engine/models.go @@ -529,7 +529,7 @@ type TpSupplier struct { FilterIDs string `index:"2" re:""` ActivationInterval string `index:"3" re:""` Sorting string `index:"4" re:""` - SortingParams string `index:"5" re:""` + SortingParameters string `index:"5" re:""` SupplierID string `index:"6" re:""` SupplierFilterIDs string `index:"7" re:""` SupplierAccountIDs string `index:"8" re:""` diff --git a/engine/onstor_it_test.go b/engine/onstor_it_test.go index ae97e93f6..841e161b7 100644 --- a/engine/onstor_it_test.go +++ b/engine/onstor_it_test.go @@ -2326,8 +2326,8 @@ func testOnStorITSupplierProfile(t *testing.T) { ActivationInterval: &utils.ActivationInterval{ ActivationTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC), }, - Sorting: "*lowest_cost", - SortingParams: []string{}, + Sorting: "*lowest_cost", + SortingParameters: []string{}, Suppliers: []*Supplier{ &Supplier{ ID: "supplier1", diff --git a/engine/storage_mongo_datadb.go b/engine/storage_mongo_datadb.go index 3a7164de9..d74d9204a 100755 --- a/engine/storage_mongo_datadb.go +++ b/engine/storage_mongo_datadb.go @@ -1145,14 +1145,13 @@ func (ms *MongoStorage) SetAccount(acc *Account) error { return err } -func (ms *MongoStorage) RemoveAccount(key string) error { +func (ms *MongoStorage) RemoveAccount(key string) (err error) { session, col := ms.conn(colAcc) defer session.Close() - err := col.Remove(bson.M{"id": key}) - if err == mgo.ErrNotFound { + if err = col.Remove(bson.M{"id": key}); err == mgo.ErrNotFound { err = utils.ErrNotFound } - return err + return } func (ms *MongoStorage) GetCdrStatsQueueDrv(key string) (sq *CDRStatsQueue, err error) { diff --git a/engine/storage_redis.go b/engine/storage_redis.go index 635f64eb1..cb846227d 100755 --- a/engine/storage_redis.go +++ b/engine/storage_redis.go @@ -659,7 +659,6 @@ func (rs *RedisStorage) SetAccount(ub *Account) (err error) { func (rs *RedisStorage) RemoveAccount(key string) (err error) { err = rs.Cmd("DEL", utils.ACCOUNT_PREFIX+key).Err - utils.Logger.Debug(fmt.Sprintf("Error from RemoiveAccoutn: %+v", err)) if err == redis.ErrRespNil { err = utils.ErrNotFound } diff --git a/engine/suppliers.go b/engine/suppliers.go index a1cb57009..e8e60de10 100644 --- a/engine/suppliers.go +++ b/engine/suppliers.go @@ -50,7 +50,7 @@ type SupplierProfile struct { FilterIDs []string ActivationInterval *utils.ActivationInterval // Activation interval Sorting string // Sorting strategy - SortingParams []string + SortingParameters []string Suppliers []*Supplier Weight float64 } diff --git a/engine/suppliers_test.go b/engine/suppliers_test.go index 58554fe42..8fa70ec78 100644 --- a/engine/suppliers_test.go +++ b/engine/suppliers_test.go @@ -40,8 +40,8 @@ var ( ActivationTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC), ExpiryTime: cloneExpTimeSuppliers, }, - Sorting: utils.MetaWeight, - SortingParams: []string{}, + Sorting: utils.MetaWeight, + SortingParameters: []string{}, Suppliers: []*Supplier{ &Supplier{ ID: "supplier1", @@ -65,8 +65,8 @@ var ( ActivationTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC), ExpiryTime: cloneExpTimeSuppliers, }, - Sorting: utils.MetaWeight, - SortingParams: []string{}, + Sorting: utils.MetaWeight, + SortingParameters: []string{}, Suppliers: []*Supplier{ &Supplier{ ID: "supplier2", @@ -110,8 +110,8 @@ var ( ActivationTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC), ExpiryTime: cloneExpTimeSuppliers, }, - Sorting: utils.MetaWeight, - SortingParams: []string{}, + Sorting: utils.MetaWeight, + SortingParameters: []string{}, Suppliers: []*Supplier{ &Supplier{ ID: "supplier1", @@ -135,8 +135,8 @@ var ( ActivationTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC), ExpiryTime: cloneExpTimeSuppliers, }, - Sorting: utils.MetaWeight, - SortingParams: []string{}, + Sorting: utils.MetaWeight, + SortingParameters: []string{}, Suppliers: []*Supplier{ &Supplier{ ID: "supplier2", @@ -229,8 +229,8 @@ func TestSuppliersSort(t *testing.T) { ActivationTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC), ExpiryTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC), }, - Sorting: "", - SortingParams: []string{}, + Sorting: "", + SortingParameters: []string{}, Suppliers: []*Supplier{ &Supplier{ ID: "supplier1", @@ -254,8 +254,8 @@ func TestSuppliersSort(t *testing.T) { ActivationTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC), ExpiryTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC), }, - Sorting: "", - SortingParams: []string{}, + Sorting: "", + SortingParameters: []string{}, Suppliers: []*Supplier{ &Supplier{ ID: "supplier1", @@ -281,8 +281,8 @@ func TestSuppliersSort(t *testing.T) { ActivationTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC), ExpiryTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC), }, - Sorting: "", - SortingParams: []string{}, + Sorting: "", + SortingParameters: []string{}, Suppliers: []*Supplier{ &Supplier{ ID: "supplier1", @@ -306,8 +306,8 @@ func TestSuppliersSort(t *testing.T) { ActivationTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC), ExpiryTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC), }, - Sorting: "", - SortingParams: []string{}, + Sorting: "", + SortingParameters: []string{}, Suppliers: []*Supplier{ &Supplier{ ID: "supplier1", diff --git a/migrator/migrator_it_test.go b/migrator/migrator_it_test.go index 65517f491..6c1ee001d 100644 --- a/migrator/migrator_it_test.go +++ b/migrator/migrator_it_test.go @@ -2033,8 +2033,8 @@ func testMigratorTPSuppliers(t *testing.T) { ActivationTime: "2014-07-29T15:00:00Z", ExpiryTime: "", }, - Sorting: "*lowest_cost", - SortingParams: []string{}, + Sorting: "*lowest_cost", + SortingParameters: []string{"Parameter1"}, Suppliers: []*utils.TPSupplier{ &utils.TPSupplier{ ID: "supplier1", @@ -2069,7 +2069,7 @@ func testMigratorTPSuppliers(t *testing.T) { t.Error("Error when getting TPSupplier ", err.Error()) } if !reflect.DeepEqual(tpSplPr, result) { - t.Errorf("Expecting: %+v, received: %+v", tpSplPr, result) + t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(tpSplPr), utils.ToJSON(result)) } } } diff --git a/utils/apitpdata.go b/utils/apitpdata.go index f0a618124..4fde4860a 100755 --- a/utils/apitpdata.go +++ b/utils/apitpdata.go @@ -1398,7 +1398,7 @@ type TPSupplierProfile struct { FilterIDs []string ActivationInterval *TPActivationInterval // Time when this limit becomes active and expires Sorting string - SortingParams []string + SortingParameters []string Suppliers []*TPSupplier Weight float64 }