* Add KVList method

* Add KVList method

Add KVList method

* Add pagination support

* Change offset, limit to page, perPage

* Rename constant
Этот коммит содержится в:
Shobhit Gupta
2018-10-03 13:04:37 -07:00
коммит произвёл Joram Wilander
родитель 7468f35cb0
Коммит 8c03e584c1
9 изменённых файлов: 156 добавлений и 0 удалений

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

@@ -12,6 +12,10 @@ import (
"github.com/mattermost/mattermost-server/store"
)
const (
DEFAULT_PLUGIN_KEY_FETCH_LIMIT = 10
)
type SqlPluginStore struct {
SqlStore
}
@@ -92,3 +96,23 @@ func (ps SqlPluginStore) Delete(pluginId, key string) store.StoreChannel {
}
})
}
func (ps SqlPluginStore) List(pluginId string, offset int, limit int) store.StoreChannel {
if limit <= 0 {
limit = DEFAULT_PLUGIN_KEY_FETCH_LIMIT
}
if offset <= 0 {
offset = 0
}
return store.Do(func(result *store.StoreResult) {
var keys []string
_, err := ps.GetReplica().Select(&keys, "SELECT PKey FROM PluginKeyValueStore WHERE PluginId = :PluginId order by PKey limit :Limit offset :Offset", map[string]interface{}{"PluginId": pluginId, "Limit": limit, "Offset": offset})
if err != nil {
result.Err = model.NewAppError("SqlPluginStore.List", "store.sql_plugin_store.list.app_error", nil, fmt.Sprintf("plugin_id=%v, err=%v", pluginId, err.Error()), http.StatusInternalServerError)
} else {
result.Data = keys
}
})
}