mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Support for latest gorm
This commit is contained in:
@@ -247,6 +247,7 @@ func TestV2CDRsMySQLRateWithoutTP(t *testing.T) {
|
||||
if !*testLocal {
|
||||
return
|
||||
}
|
||||
//"d32a571d7bcbc6700fd35c1c0c5c6f458a62e260"
|
||||
rawCdrCGRID := utils.Sha1("bbb1", time.Date(2015, 11, 21, 10, 47, 24, 0, time.UTC).String())
|
||||
// Rate the injected CDR, should not rate it since we have no TP loaded
|
||||
attrs := utils.AttrRateCdrs{CgrIds: []string{rawCdrCGRID}}
|
||||
|
||||
@@ -47,8 +47,8 @@
|
||||
|
||||
"sm_generic": {
|
||||
"enabled": true,
|
||||
"rater": "127.0.0.1:2013",
|
||||
"cdrs": "127.0.0.1:2013",
|
||||
"rater": "internal",
|
||||
"cdrs": "internal",
|
||||
},
|
||||
|
||||
"diameter_agent": {
|
||||
|
||||
@@ -29,9 +29,9 @@ CREATE TABLE cdrs (
|
||||
cost DECIMAL(20,4) NOT NULL,
|
||||
cost_details text,
|
||||
extra_info text,
|
||||
created_at TIMESTAMP,
|
||||
updated_at TIMESTAMP,
|
||||
deleted_at TIMESTAMP,
|
||||
created_at TIMESTAMP NULL,
|
||||
updated_at TIMESTAMP NULL,
|
||||
deleted_at TIMESTAMP NULL,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY cdrrun (cgrid, run_id, origin_id)
|
||||
);
|
||||
@@ -46,8 +46,8 @@ CREATE TABLE sm_costs (
|
||||
cost_source varchar(64) NOT NULL,
|
||||
`usage` DECIMAL(30,9) NOT NULL,
|
||||
cost_details text,
|
||||
created_at TIMESTAMP,
|
||||
deleted_at TIMESTAMP,
|
||||
created_at TIMESTAMP NULL,
|
||||
deleted_at TIMESTAMP NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY costid (cgrid,run_id),
|
||||
KEY origin_idx (origin_host, origin_id),
|
||||
|
||||
@@ -30,8 +30,8 @@ CREATE TABLE cdrs (
|
||||
cost_details jsonb,
|
||||
extra_info text,
|
||||
created_at TIMESTAMP,
|
||||
updated_at TIMESTAMP,
|
||||
deleted_at TIMESTAMP,
|
||||
updated_at TIMESTAMP NULL,
|
||||
deleted_at TIMESTAMP NULL,
|
||||
UNIQUE (cgrid, run_id, origin_id)
|
||||
);
|
||||
;
|
||||
@@ -50,7 +50,7 @@ CREATE TABLE sm_costs (
|
||||
usage NUMERIC(30,9) NOT NULL,
|
||||
cost_details jsonb,
|
||||
created_at TIMESTAMP,
|
||||
deleted_at TIMESTAMP,
|
||||
deleted_at TIMESTAMP NULL,
|
||||
UNIQUE (cgrid, run_id)
|
||||
);
|
||||
DROP INDEX IF EXISTS cgrid_smcost_idx;
|
||||
|
||||
@@ -375,7 +375,7 @@ func (self *CdrServer) rateCDR(cdr *CDR) ([]*CDR, error) {
|
||||
}
|
||||
return cdrsRated, nil
|
||||
}
|
||||
if err != nil && (err == gorm.RecordNotFound || err == mgov2.ErrNotFound) { //calculate CDR as for pseudoprepaid
|
||||
if err != nil && (err == gorm.ErrRecordNotFound || err == mgov2.ErrNotFound) { //calculate CDR as for pseudoprepaid
|
||||
utils.Logger.Warning(fmt.Sprintf("<Cdrs> WARNING: Could not find CallCostLog for cgrid: %s, source: %s, runid: %s, will recalculate", cdr.CGRID, utils.SESSION_MANAGER_SOURCE, cdr.RunID))
|
||||
qryCC, err = self.getCostFromRater(cdr)
|
||||
}
|
||||
|
||||
@@ -440,7 +440,7 @@ type TBLCDRs struct {
|
||||
ExtraInfo string
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
DeletedAt time.Time
|
||||
DeletedAt *time.Time
|
||||
}
|
||||
|
||||
func (t TBLCDRs) TableName() string {
|
||||
@@ -457,7 +457,7 @@ type TBLSMCosts struct {
|
||||
Usage float64
|
||||
CostDetails string
|
||||
CreatedAt time.Time
|
||||
DeletedAt time.Time
|
||||
DeletedAt *time.Time
|
||||
}
|
||||
|
||||
func (t TBLSMCosts) TableName() string {
|
||||
|
||||
@@ -34,7 +34,7 @@ import (
|
||||
|
||||
type SQLStorage struct {
|
||||
Db *sql.DB
|
||||
db gorm.DB
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
func (self *SQLStorage) Close() {
|
||||
@@ -675,8 +675,8 @@ func (self *SQLStorage) SetCDR(cdr *CDR, allowUpdate bool) error {
|
||||
return saved.Error
|
||||
}
|
||||
tx = self.db.Begin()
|
||||
updated := tx.Model(TBLCDRs{}).Where(&TBLCDRs{Cgrid: cdr.CGRID, RunID: cdr.RunID}).Updates(
|
||||
&TBLCDRs{
|
||||
updated := tx.Model(&TBLCDRs{}).Where(&TBLCDRs{Cgrid: cdr.CGRID, RunID: cdr.RunID, OriginID: cdr.OriginID}).Updates(
|
||||
TBLCDRs{
|
||||
OriginHost: cdr.OriginHost,
|
||||
Source: cdr.Source,
|
||||
OriginID: cdr.OriginID,
|
||||
@@ -718,9 +718,6 @@ func (self *SQLStorage) GetCDRs(qryFltr *utils.CDRsFilter, remove bool) ([]*CDR,
|
||||
q := self.db.Table(utils.TBL_CDRS).Select("*")
|
||||
if qryFltr.Unscoped {
|
||||
q = q.Unscoped()
|
||||
} else {
|
||||
// Query filter
|
||||
q = q.Where("(deleted_at IS NULL OR deleted_at <= '0001-01-02')") // Soft deletes
|
||||
}
|
||||
// Add filters, use in to replace the high number of ORs
|
||||
if len(qryFltr.CGRIDs) != 0 {
|
||||
@@ -957,12 +954,15 @@ func (self *SQLStorage) GetCDRs(qryFltr *utils.CDRsFilter, remove bool) ([]*CDR,
|
||||
q.Find(&results)
|
||||
|
||||
for _, result := range results {
|
||||
var extraFieldsMp map[string]string
|
||||
if err := json.Unmarshal([]byte(result.ExtraFields), &extraFieldsMp); err != nil {
|
||||
return nil, 0, fmt.Errorf("JSON unmarshal error for cgrid: %s, runid: %v, error: %s", result.Cgrid, result.RunID, err.Error())
|
||||
extraFieldsMp := make(map[string]string)
|
||||
if result.ExtraFields != "" {
|
||||
if err := json.Unmarshal([]byte(result.ExtraFields), &extraFieldsMp); err != nil {
|
||||
utils.Logger.Debug(fmt.Sprintf("Unmarshall json for result: %+v, error: %v", result.ExtraFields, err))
|
||||
return nil, 0, fmt.Errorf("JSON unmarshal error for cgrid: %s, runid: %v, error: %s", result.Cgrid, result.RunID, err.Error())
|
||||
}
|
||||
}
|
||||
var callCost CallCost
|
||||
if len(result.CostDetails) != 0 {
|
||||
if result.CostDetails != "" {
|
||||
if err := json.Unmarshal([]byte(result.CostDetails), &callCost); err != nil {
|
||||
return nil, 0, fmt.Errorf("JSON unmarshal callcost error for cgrid: %s, runid: %v, error: %s", result.Cgrid, result.RunID, err.Error())
|
||||
}
|
||||
|
||||
17
glide.lock
generated
17
glide.lock
generated
@@ -1,8 +1,6 @@
|
||||
hash: c4e3a1bdd7452ec3af195e09b8b3b1b9a61e36edfad557aeb01686706019c352
|
||||
updated: 2016-03-09T00:08:37.493018177+02:00
|
||||
hash: 5c488630d1d32687b7a3c3b22c47ceaf7eb3cffb764799706728a6accbcd3ff5
|
||||
updated: 2016-04-01T13:47:06.215526502+02:00
|
||||
imports:
|
||||
- name: github.com/cenkalti/hub
|
||||
version: 57d753b5f4856e77b3cf8ecce78c97215a7d324d
|
||||
- name: github.com/cenkalti/rpc2
|
||||
version: 2d1be381ce47537e9e076b2b76dc70933162e4e9
|
||||
- name: github.com/cgrates/fsock
|
||||
@@ -23,22 +21,16 @@ imports:
|
||||
- diam/datatype
|
||||
- diam/dict
|
||||
- diam/sm
|
||||
- diam/sm/smparser
|
||||
- diam/sm/smpeer
|
||||
- name: github.com/go-sql-driver/mysql
|
||||
version: 0f2db9e6c9cff80a97ca5c2c5096242cc1554e16
|
||||
- name: github.com/gorhill/cronexpr
|
||||
version: a557574d6c024ed6e36acc8b610f5f211c91568a
|
||||
- name: github.com/jinzhu/gorm
|
||||
version: 2f7811c55f286c55cfc3a2aefb5c4049b9cd5214
|
||||
- name: github.com/jinzhu/inflection
|
||||
version: 3272df6c21d04180007eb3349844c89a3856bc25
|
||||
version: 2530dcbccd9c9ff7ce5a903e01bbf8601b726112
|
||||
- name: github.com/kr/pty
|
||||
version: f7ee69f31298ecbe5d2b349c711e2547a617d398
|
||||
- name: github.com/lib/pq
|
||||
version: 165a3529e799da61ab10faed1fabff3662d6193f
|
||||
subpackages:
|
||||
- oid
|
||||
- name: github.com/mediocregopher/radix.v2
|
||||
version: 7bdaf7c45ec452ca691ab20535471e24460f0876
|
||||
subpackages:
|
||||
@@ -54,13 +46,10 @@ imports:
|
||||
version: a4bbce9fcae005b22ae5443f6af064d80a6f5a55
|
||||
subpackages:
|
||||
- websocket
|
||||
- context
|
||||
- name: gopkg.in/fsnotify.v1
|
||||
version: 875cf421b32f8f1b31bd43776297876d01542279
|
||||
- name: gopkg.in/mgo.v2
|
||||
version: d90005c5262a3463800497ea5a89aed5fe22c886
|
||||
subpackages:
|
||||
- bson
|
||||
- internal/sasl
|
||||
- internal/scram
|
||||
devImports: []
|
||||
|
||||
Reference in New Issue
Block a user