summaryrefslogtreecommitdiffstats
path: root/store
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-03-13 10:14:16 -0400
committerGitHub <noreply@github.com>2017-03-13 10:14:16 -0400
commit3ebfb369530e28ca3246c5cd2833e666edce9c90 (patch)
treea91ef74768301db727ca062354af9cac2b444001 /store
parenta284cd8c1817bb5419cb9eae118c85cd7e99c039 (diff)
downloadchat-3ebfb369530e28ca3246c5cd2833e666edce9c90.tar.gz
chat-3ebfb369530e28ca3246c5cd2833e666edce9c90.tar.bz2
chat-3ebfb369530e28ca3246c5cd2833e666edce9c90.zip
Implement compliance endpoints for APIv4 (#5683)
* Implement compliance endpoints for APIv4 * Add paging to get reports endpoint
Diffstat (limited to 'store')
-rw-r--r--store/sql_compliance_store.go6
-rw-r--r--store/sql_compliance_store_test.go20
-rw-r--r--store/store.go2
3 files changed, 22 insertions, 6 deletions
diff --git a/store/sql_compliance_store.go b/store/sql_compliance_store.go
index 0a131d289..2307a98cf 100644
--- a/store/sql_compliance_store.go
+++ b/store/sql_compliance_store.go
@@ -87,17 +87,17 @@ func (us SqlComplianceStore) Update(compliance *model.Compliance) StoreChannel {
return storeChannel
}
-func (s SqlComplianceStore) GetAll() StoreChannel {
+func (s SqlComplianceStore) GetAll(offset, limit int) StoreChannel {
storeChannel := make(StoreChannel, 1)
go func() {
result := StoreResult{}
- query := "SELECT * FROM Compliances ORDER BY CreateAt DESC"
+ query := "SELECT * FROM Compliances ORDER BY CreateAt DESC LIMIT :Limit OFFSET :Offset"
var compliances model.Compliances
- if _, err := s.GetReplica().Select(&compliances, query); err != nil {
+ if _, err := s.GetReplica().Select(&compliances, query, map[string]interface{}{"Offset": offset, "Limit": limit}); err != nil {
result.Err = model.NewLocAppError("SqlComplianceStore.Get", "store.sql_compliance.get.finding.app_error", nil, err.Error())
} else {
result.Data = compliances
diff --git a/store/sql_compliance_store_test.go b/store/sql_compliance_store_test.go
index 25b6f2dce..e9b0cf94a 100644
--- a/store/sql_compliance_store_test.go
+++ b/store/sql_compliance_store_test.go
@@ -20,7 +20,7 @@ func TestSqlComplianceStore(t *testing.T) {
Must(store.Compliance().Save(compliance2))
time.Sleep(100 * time.Millisecond)
- c := store.Compliance().GetAll()
+ c := store.Compliance().GetAll(0, 1000)
result := <-c
compliances := result.Data.(model.Compliances)
@@ -31,7 +31,7 @@ func TestSqlComplianceStore(t *testing.T) {
compliance2.Status = model.COMPLIANCE_STATUS_FAILED
Must(store.Compliance().Update(compliance2))
- c = store.Compliance().GetAll()
+ c = store.Compliance().GetAll(0, 1000)
result = <-c
compliances = result.Data.(model.Compliances)
@@ -39,6 +39,22 @@ func TestSqlComplianceStore(t *testing.T) {
t.Fatal()
}
+ c = store.Compliance().GetAll(0, 1)
+ result = <-c
+ compliances = result.Data.(model.Compliances)
+
+ if len(compliances) != 1 {
+ t.Fatal("should only have returned 1")
+ }
+
+ c = store.Compliance().GetAll(1, 1)
+ result = <-c
+ compliances = result.Data.(model.Compliances)
+
+ if len(compliances) != 1 {
+ t.Fatal("should only have returned 1")
+ }
+
rc2 := (<-store.Compliance().Get(compliance2.Id)).Data.(*model.Compliance)
if rc2.Status != compliance2.Status {
t.Fatal()
diff --git a/store/store.go b/store/store.go
index b8b874f41..5596fa7f8 100644
--- a/store/store.go
+++ b/store/store.go
@@ -228,7 +228,7 @@ type ComplianceStore interface {
Save(compliance *model.Compliance) StoreChannel
Update(compliance *model.Compliance) StoreChannel
Get(id string) StoreChannel
- GetAll() StoreChannel
+ GetAll(offset, limit int) StoreChannel
ComplianceExport(compliance *model.Compliance) StoreChannel
}