Allow discovery route to search deleted resources
This commit is contained in:
committed by
Tomaž Jerman
parent
9a93473cea
commit
09d69f1244
@@ -26,6 +26,7 @@ endpoints:
|
||||
parameters:
|
||||
get:
|
||||
- { name: userID, type: uint64, title: User ID }
|
||||
- { name: deleted, type: uint, title: Exclude (0, default), include (1) or return only (2) deleted users }
|
||||
|
||||
- name: composeNamespaces
|
||||
method: GET
|
||||
@@ -34,6 +35,7 @@ endpoints:
|
||||
parameters:
|
||||
get:
|
||||
- { name: namespaceID, type: uint64, title: Namespace ID }
|
||||
- { name: deleted, type: uint, title: Exclude (0, default), include (1) or return only (2) deleted namespaces }
|
||||
|
||||
- name: composeModules
|
||||
method: GET
|
||||
@@ -44,6 +46,7 @@ endpoints:
|
||||
- { name: namespaceID, type: uint64, title: Namespace ID }
|
||||
get:
|
||||
- { name: moduleID, type: uint64, title: Module ID }
|
||||
- { name: deleted, type: uint, title: Exclude (0, default), include (1) or return only (2) deleted modules }
|
||||
|
||||
- name: composeRecords
|
||||
method: GET
|
||||
@@ -55,6 +58,7 @@ endpoints:
|
||||
- { name: moduleID, type: uint64, title: Module ID }
|
||||
get:
|
||||
- { name: recordID, type: uint64, title: Record ID }
|
||||
- { name: deleted, type: uint, title: Exclude (0, default), include (1) or return only (2) deleted records }
|
||||
|
||||
- path: "/feed"
|
||||
entrypoint: feed
|
||||
|
||||
@@ -81,7 +81,7 @@ func ComposeResources() *composeResources {
|
||||
}
|
||||
}
|
||||
|
||||
func (d composeResources) Namespaces(ctx context.Context, limit uint, cur string, namespaceID uint64) (rsp *Response, err error) {
|
||||
func (d composeResources) Namespaces(ctx context.Context, limit uint, cur string, namespaceID uint64, deleted uint) (rsp *Response, err error) {
|
||||
return rsp, func() (err error) {
|
||||
if !d.settings.Discovery.ComposeNamespaces.Enabled {
|
||||
return errors.Internal("compose namespace indexing disabled")
|
||||
@@ -93,7 +93,7 @@ func (d composeResources) Namespaces(ctx context.Context, limit uint, cur string
|
||||
pf cmpTypes.PageFilter
|
||||
nss cmpTypes.NamespaceSet
|
||||
f = cmpTypes.NamespaceFilter{
|
||||
Deleted: filter.StateExcluded,
|
||||
Deleted: filter.State(deleted),
|
||||
}
|
||||
)
|
||||
|
||||
@@ -175,7 +175,7 @@ func (d composeResources) Namespaces(ctx context.Context, limit uint, cur string
|
||||
}()
|
||||
}
|
||||
|
||||
func (d composeResources) Modules(ctx context.Context, namespaceID uint64, limit uint, cur string, moduleID uint64) (rsp *Response, err error) {
|
||||
func (d composeResources) Modules(ctx context.Context, namespaceID uint64, limit uint, cur string, moduleID uint64, deleted uint) (rsp *Response, err error) {
|
||||
return rsp, func() (err error) {
|
||||
if !d.settings.Discovery.ComposeModules.Enabled {
|
||||
return errors.Internal("compose module indexing disabled")
|
||||
@@ -186,7 +186,7 @@ func (d composeResources) Modules(ctx context.Context, namespaceID uint64, limit
|
||||
mm cmpTypes.ModuleSet
|
||||
f = cmpTypes.ModuleFilter{
|
||||
NamespaceID: namespaceID,
|
||||
Deleted: filter.StateExcluded,
|
||||
Deleted: filter.State(deleted),
|
||||
}
|
||||
)
|
||||
|
||||
@@ -262,7 +262,7 @@ func (d composeResources) Modules(ctx context.Context, namespaceID uint64, limit
|
||||
}()
|
||||
}
|
||||
|
||||
func (d composeResources) Records(ctx context.Context, namespaceID, moduleID uint64, limit uint, cur string, recordID uint64) (rsp *Response, err error) {
|
||||
func (d composeResources) Records(ctx context.Context, namespaceID, moduleID uint64, limit uint, cur string, recordID uint64, deleted uint) (rsp *Response, err error) {
|
||||
return rsp, func() (err error) {
|
||||
if !d.settings.Discovery.ComposeRecords.Enabled {
|
||||
return errors.Internal("compose record indexing disabled")
|
||||
@@ -275,7 +275,7 @@ func (d composeResources) Records(ctx context.Context, namespaceID, moduleID uin
|
||||
f = cmpTypes.RecordFilter{
|
||||
NamespaceID: namespaceID,
|
||||
ModuleID: moduleID,
|
||||
Deleted: filter.StateExcluded,
|
||||
Deleted: filter.State(deleted),
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ func SystemResources() *systemResources {
|
||||
}
|
||||
}
|
||||
|
||||
func (d systemResources) Users(ctx context.Context, limit uint, cur string, userID uint64) (rsp *Response, err error) {
|
||||
func (d systemResources) Users(ctx context.Context, limit uint, cur string, userID uint64, deleted uint) (rsp *Response, err error) {
|
||||
return rsp, func() (err error) {
|
||||
if !d.settings.Discovery.SystemUsers.Enabled {
|
||||
return errors.Internal("system user indexing disabled")
|
||||
@@ -50,7 +50,7 @@ func (d systemResources) Users(ctx context.Context, limit uint, cur string, user
|
||||
var (
|
||||
uu types.UserSet
|
||||
f = types.UserFilter{
|
||||
Deleted: filter.StateExcluded,
|
||||
Deleted: filter.State(deleted),
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -48,6 +48,11 @@ type (
|
||||
//
|
||||
// User ID
|
||||
UserID uint64 `json:",string"`
|
||||
|
||||
// Deleted GET parameter
|
||||
//
|
||||
// Exclude (0
|
||||
Deleted uint
|
||||
}
|
||||
|
||||
ResourcesComposeNamespaces struct {
|
||||
@@ -65,6 +70,11 @@ type (
|
||||
//
|
||||
// Namespace ID
|
||||
NamespaceID uint64 `json:",string"`
|
||||
|
||||
// Deleted GET parameter
|
||||
//
|
||||
// Exclude (0
|
||||
Deleted uint
|
||||
}
|
||||
|
||||
ResourcesComposeModules struct {
|
||||
@@ -87,6 +97,11 @@ type (
|
||||
//
|
||||
// Module ID
|
||||
ModuleID uint64 `json:",string"`
|
||||
|
||||
// Deleted GET parameter
|
||||
//
|
||||
// Exclude (0
|
||||
Deleted uint
|
||||
}
|
||||
|
||||
ResourcesComposeRecords struct {
|
||||
@@ -114,6 +129,11 @@ type (
|
||||
//
|
||||
// Record ID
|
||||
RecordID uint64 `json:",string"`
|
||||
|
||||
// Deleted GET parameter
|
||||
//
|
||||
// Exclude (0
|
||||
Deleted uint
|
||||
}
|
||||
)
|
||||
|
||||
@@ -128,6 +148,7 @@ func (r ResourcesSystemUsers) Auditable() map[string]interface{} {
|
||||
"limit": r.Limit,
|
||||
"pageCursor": r.PageCursor,
|
||||
"userID": r.UserID,
|
||||
"deleted": r.Deleted,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -146,6 +167,11 @@ func (r ResourcesSystemUsers) GetUserID() uint64 {
|
||||
return r.UserID
|
||||
}
|
||||
|
||||
// Auditable returns all auditable/loggable parameters
|
||||
func (r ResourcesSystemUsers) GetDeleted() uint {
|
||||
return r.Deleted
|
||||
}
|
||||
|
||||
// Fill processes request and fills internal variables
|
||||
func (r *ResourcesSystemUsers) Fill(req *http.Request) (err error) {
|
||||
|
||||
@@ -171,6 +197,12 @@ func (r *ResourcesSystemUsers) Fill(req *http.Request) (err error) {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if val, ok := tmp["deleted"]; ok && len(val) > 0 {
|
||||
r.Deleted, err = payload.ParseUint(val[0]), nil
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return err
|
||||
@@ -187,6 +219,7 @@ func (r ResourcesComposeNamespaces) Auditable() map[string]interface{} {
|
||||
"limit": r.Limit,
|
||||
"pageCursor": r.PageCursor,
|
||||
"namespaceID": r.NamespaceID,
|
||||
"deleted": r.Deleted,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -205,6 +238,11 @@ func (r ResourcesComposeNamespaces) GetNamespaceID() uint64 {
|
||||
return r.NamespaceID
|
||||
}
|
||||
|
||||
// Auditable returns all auditable/loggable parameters
|
||||
func (r ResourcesComposeNamespaces) GetDeleted() uint {
|
||||
return r.Deleted
|
||||
}
|
||||
|
||||
// Fill processes request and fills internal variables
|
||||
func (r *ResourcesComposeNamespaces) Fill(req *http.Request) (err error) {
|
||||
|
||||
@@ -230,6 +268,12 @@ func (r *ResourcesComposeNamespaces) Fill(req *http.Request) (err error) {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if val, ok := tmp["deleted"]; ok && len(val) > 0 {
|
||||
r.Deleted, err = payload.ParseUint(val[0]), nil
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return err
|
||||
@@ -247,6 +291,7 @@ func (r ResourcesComposeModules) Auditable() map[string]interface{} {
|
||||
"limit": r.Limit,
|
||||
"pageCursor": r.PageCursor,
|
||||
"moduleID": r.ModuleID,
|
||||
"deleted": r.Deleted,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -270,6 +315,11 @@ func (r ResourcesComposeModules) GetModuleID() uint64 {
|
||||
return r.ModuleID
|
||||
}
|
||||
|
||||
// Auditable returns all auditable/loggable parameters
|
||||
func (r ResourcesComposeModules) GetDeleted() uint {
|
||||
return r.Deleted
|
||||
}
|
||||
|
||||
// Fill processes request and fills internal variables
|
||||
func (r *ResourcesComposeModules) Fill(req *http.Request) (err error) {
|
||||
|
||||
@@ -295,6 +345,12 @@ func (r *ResourcesComposeModules) Fill(req *http.Request) (err error) {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if val, ok := tmp["deleted"]; ok && len(val) > 0 {
|
||||
r.Deleted, err = payload.ParseUint(val[0]), nil
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
@@ -325,6 +381,7 @@ func (r ResourcesComposeRecords) Auditable() map[string]interface{} {
|
||||
"limit": r.Limit,
|
||||
"pageCursor": r.PageCursor,
|
||||
"recordID": r.RecordID,
|
||||
"deleted": r.Deleted,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -353,6 +410,11 @@ func (r ResourcesComposeRecords) GetRecordID() uint64 {
|
||||
return r.RecordID
|
||||
}
|
||||
|
||||
// Auditable returns all auditable/loggable parameters
|
||||
func (r ResourcesComposeRecords) GetDeleted() uint {
|
||||
return r.Deleted
|
||||
}
|
||||
|
||||
// Fill processes request and fills internal variables
|
||||
func (r *ResourcesComposeRecords) Fill(req *http.Request) (err error) {
|
||||
|
||||
@@ -378,6 +440,12 @@ func (r *ResourcesComposeRecords) Fill(req *http.Request) (err error) {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if val, ok := tmp["deleted"]; ok && len(val) > 0 {
|
||||
r.Deleted, err = payload.ParseUint(val[0]), nil
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
|
||||
@@ -9,13 +9,13 @@ import (
|
||||
type (
|
||||
resources struct {
|
||||
sys interface {
|
||||
Users(ctx context.Context, limit uint, cur string, userID uint64) (*documents.Response, error)
|
||||
Users(ctx context.Context, limit uint, cur string, userID uint64, deleted uint) (*documents.Response, error)
|
||||
}
|
||||
|
||||
cmp interface {
|
||||
Namespaces(ctx context.Context, limit uint, cur string, namespaceID uint64) (*documents.Response, error)
|
||||
Modules(ctx context.Context, namespaceID uint64, limit uint, cur string, moduleID uint64) (*documents.Response, error)
|
||||
Records(ctx context.Context, namespaceID, moduleID uint64, limit uint, cur string, recordID uint64) (*documents.Response, error)
|
||||
Namespaces(ctx context.Context, limit uint, cur string, namespaceID uint64, deleted uint) (*documents.Response, error)
|
||||
Modules(ctx context.Context, namespaceID uint64, limit uint, cur string, moduleID uint64, deleted uint) (*documents.Response, error)
|
||||
Records(ctx context.Context, namespaceID, moduleID uint64, limit uint, cur string, recordID uint64, deleted uint) (*documents.Response, error)
|
||||
}
|
||||
}
|
||||
)
|
||||
@@ -28,17 +28,17 @@ func Resources() *resources {
|
||||
}
|
||||
|
||||
func (ctrl resources) SystemUsers(ctx context.Context, r *request.ResourcesSystemUsers) (interface{}, error) {
|
||||
return ctrl.sys.Users(ctx, r.Limit, r.PageCursor, r.UserID)
|
||||
return ctrl.sys.Users(ctx, r.Limit, r.PageCursor, r.UserID, r.Deleted)
|
||||
}
|
||||
|
||||
func (ctrl resources) ComposeNamespaces(ctx context.Context, r *request.ResourcesComposeNamespaces) (interface{}, error) {
|
||||
return ctrl.cmp.Namespaces(ctx, r.Limit, r.PageCursor, r.NamespaceID)
|
||||
return ctrl.cmp.Namespaces(ctx, r.Limit, r.PageCursor, r.NamespaceID, r.Deleted)
|
||||
}
|
||||
|
||||
func (ctrl resources) ComposeModules(ctx context.Context, r *request.ResourcesComposeModules) (interface{}, error) {
|
||||
return ctrl.cmp.Modules(ctx, r.NamespaceID, r.Limit, r.PageCursor, r.ModuleID)
|
||||
return ctrl.cmp.Modules(ctx, r.NamespaceID, r.Limit, r.PageCursor, r.ModuleID, r.Deleted)
|
||||
}
|
||||
|
||||
func (ctrl resources) ComposeRecords(ctx context.Context, r *request.ResourcesComposeRecords) (interface{}, error) {
|
||||
return ctrl.cmp.Records(ctx, r.NamespaceID, r.ModuleID, r.Limit, r.PageCursor, r.RecordID)
|
||||
return ctrl.cmp.Records(ctx, r.NamespaceID, r.ModuleID, r.Limit, r.PageCursor, r.RecordID, r.Deleted)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user