mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-13 19:56:38 +05:00
Fix paginator conversion between CDR filters, paginator tests for both mysql and postgres
This commit is contained in:
@@ -574,6 +574,24 @@ func TestMySQLGetStoredCdrs(t *testing.T) {
|
||||
} else if count != 8 {
|
||||
t.Error("Unexpected count of StoredCdrs returned: ", count)
|
||||
}
|
||||
// Limit 5
|
||||
if storedCdrs, _, err := mysqlDb.GetStoredCdrs(&utils.CdrsFilter{Paginator: utils.Paginator{Limit: utils.IntPointer(5), Offset: utils.IntPointer(0)}}); err != nil {
|
||||
t.Error(err.Error())
|
||||
} else if len(storedCdrs) != 5 {
|
||||
t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs)
|
||||
}
|
||||
// Offset 5
|
||||
if storedCdrs, _, err := mysqlDb.GetStoredCdrs(&utils.CdrsFilter{Paginator: utils.Paginator{Limit: utils.IntPointer(5), Offset: utils.IntPointer(0)}}); err != nil {
|
||||
t.Error(err.Error())
|
||||
} else if len(storedCdrs) != 5 {
|
||||
t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs)
|
||||
}
|
||||
// Offset with limit 2
|
||||
if storedCdrs, _, err := mysqlDb.GetStoredCdrs(&utils.CdrsFilter{Paginator: utils.Paginator{Limit: utils.IntPointer(2), Offset: utils.IntPointer(5)}}); err != nil {
|
||||
t.Error(err.Error())
|
||||
} else if len(storedCdrs) != 2 {
|
||||
t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs))
|
||||
}
|
||||
// Filter on cgrids
|
||||
if storedCdrs, _, err := mysqlDb.GetStoredCdrs(&utils.CdrsFilter{CgrIds: []string{utils.Sha1("bbb1", time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC).String()),
|
||||
utils.Sha1("bbb2", time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC).String())}}); err != nil {
|
||||
|
||||
@@ -576,6 +576,24 @@ func TestPSQLGetStoredCdrs(t *testing.T) {
|
||||
} else if count != 8 {
|
||||
t.Error("Unexpected count of StoredCdrs returned: ", count)
|
||||
}
|
||||
// Limit 5
|
||||
if storedCdrs, _, err := psqlDb.GetStoredCdrs(&utils.CdrsFilter{Paginator: utils.Paginator{Limit: utils.IntPointer(5), Offset: utils.IntPointer(0)}}); err != nil {
|
||||
t.Error(err.Error())
|
||||
} else if len(storedCdrs) != 5 {
|
||||
t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs)
|
||||
}
|
||||
// Offset 5
|
||||
if storedCdrs, _, err := psqlDb.GetStoredCdrs(&utils.CdrsFilter{Paginator: utils.Paginator{Limit: utils.IntPointer(5), Offset: utils.IntPointer(0)}}); err != nil {
|
||||
t.Error(err.Error())
|
||||
} else if len(storedCdrs) != 5 {
|
||||
t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs)
|
||||
}
|
||||
// Offset with limit 2
|
||||
if storedCdrs, _, err := psqlDb.GetStoredCdrs(&utils.CdrsFilter{Paginator: utils.Paginator{Limit: utils.IntPointer(2), Offset: utils.IntPointer(5)}}); err != nil {
|
||||
t.Error(err.Error())
|
||||
} else if len(storedCdrs) != 2 {
|
||||
t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs))
|
||||
}
|
||||
// Filter on cgrids
|
||||
if storedCdrs, _, err := psqlDb.GetStoredCdrs(&utils.CdrsFilter{CgrIds: []string{utils.Sha1("bbb1", time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC).String()),
|
||||
utils.Sha1("bbb2", time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC).String())}}); err != nil {
|
||||
|
||||
@@ -33,11 +33,11 @@ func (tpdi TPDistinctIds) String() string {
|
||||
return strings.Join(tpdi, ",")
|
||||
}
|
||||
|
||||
// To paginate stuff from stordb (e.g. ids)
|
||||
// Paginate stuff around items returned
|
||||
type Paginator struct {
|
||||
Limit *int
|
||||
Offset *int
|
||||
SearchTerm string
|
||||
Limit *int // Limit the number of items returned
|
||||
Offset *int // Offset of the first item returned (eg: use Limit*Page in case of PerPage items)
|
||||
SearchTerm string // Global matching pattern in items returned, partially used in some APIs
|
||||
}
|
||||
|
||||
/*func (pag *Paginator) GetLimits() (low, high int) {
|
||||
@@ -691,6 +691,7 @@ type AttrExpFileCdrs struct {
|
||||
SkipErrors bool // Do not export errored CDRs
|
||||
SkipRated bool // Do not export rated CDRs
|
||||
SuppressCgrIds bool // Disable CgrIds reporting in reply/ExportedCgrIds and reply/UnexportedCgrIds
|
||||
Paginator
|
||||
}
|
||||
|
||||
func (self *AttrExpFileCdrs) AsCdrsFilter() (*CdrsFilter, error) {
|
||||
@@ -711,6 +712,7 @@ func (self *AttrExpFileCdrs) AsCdrsFilter() (*CdrsFilter, error) {
|
||||
RatedSubjects: self.RatedSubjects,
|
||||
OrderIdStart: self.OrderIdStart,
|
||||
OrderIdEnd: self.OrderIdEnd,
|
||||
Paginator: self.Paginator,
|
||||
}
|
||||
if len(self.TimeStart) != 0 {
|
||||
if answerTimeStart, err := ParseTimeDetectLayout(self.TimeStart); err != nil {
|
||||
@@ -786,6 +788,7 @@ func (self *AttrGetCdrs) AsCdrsFilter() (*CdrsFilter, error) {
|
||||
RatedSubjects: self.RatedSubjects,
|
||||
OrderIdStart: self.OrderIdStart,
|
||||
OrderIdEnd: self.OrderIdEnd,
|
||||
Paginator: self.Paginator,
|
||||
}
|
||||
if len(self.TimeStart) != 0 {
|
||||
if answerTimeStart, err := ParseTimeDetectLayout(self.TimeStart); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user