diff options
author | Joram Wilander <jwawilander@gmail.com> | 2017-03-13 10:14:16 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-13 10:14:16 -0400 |
commit | 3ebfb369530e28ca3246c5cd2833e666edce9c90 (patch) | |
tree | a91ef74768301db727ca062354af9cac2b444001 /store | |
parent | a284cd8c1817bb5419cb9eae118c85cd7e99c039 (diff) | |
download | chat-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.go | 6 | ||||
-rw-r--r-- | store/sql_compliance_store_test.go | 20 | ||||
-rw-r--r-- | store/store.go | 2 |
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 } |