Implement compliance endpoints for APIv4 (#5683)

* Implement compliance endpoints for APIv4

* Add paging to get reports endpoint
Этот коммит содержится в:
Joram Wilander
2017-03-13 10:14:16 -04:00
коммит произвёл GitHub
родитель a284cd8c18
Коммит 3ebfb36953
11 изменённых файлов: 241 добавлений и 9 удалений

Просмотреть файл

@@ -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

Просмотреть файл

@@ -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()

Просмотреть файл

@@ -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
}