enhancement(activitylog): enhance activitylog graph endpoint
- make use of libregraph artifacts - add a basic activity kql ast parser
This commit is contained in:
@@ -7,6 +7,8 @@ import (
|
||||
provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
|
||||
"github.com/cs3org/reva/v2/pkg/storagespace"
|
||||
"github.com/cs3org/reva/v2/pkg/utils"
|
||||
libregraph "github.com/owncloud/libre-graph-api-go"
|
||||
|
||||
"github.com/owncloud/ocis/v2/ocis-pkg/l10n"
|
||||
)
|
||||
|
||||
@@ -29,14 +31,7 @@ var (
|
||||
|
||||
// GetActivitiesResponse is the response on GET activities requests
|
||||
type GetActivitiesResponse struct {
|
||||
Activities []Activity `json:"value"`
|
||||
}
|
||||
|
||||
// Activity represents an activity as it is returned to the client
|
||||
type Activity struct {
|
||||
ID string `json:"id"`
|
||||
Times Times `json:"times"`
|
||||
Template Template `json:"template"`
|
||||
Activities []libregraph.Activity `json:"value"`
|
||||
}
|
||||
|
||||
// Resource represents an item such as a file or folder
|
||||
@@ -51,23 +46,12 @@ type Actor struct {
|
||||
DisplayName string `json:"displayName"`
|
||||
}
|
||||
|
||||
// Times represents the timestamps of the Activity
|
||||
type Times struct {
|
||||
RecordedTime time.Time `json:"recordedTime"`
|
||||
}
|
||||
|
||||
// Template contains activity details
|
||||
type Template struct {
|
||||
Message string `json:"message"`
|
||||
Variables map[string]interface{} `json:"variables"`
|
||||
}
|
||||
|
||||
// NewActivity creates a new activity
|
||||
func NewActivity(message string, res Resource, user Actor, ts Times, eventID string) Activity {
|
||||
return Activity{
|
||||
ID: eventID,
|
||||
func NewActivity(message string, res Resource, user Actor, ts libregraph.ActivityTimes, eventID string) libregraph.Activity {
|
||||
return libregraph.Activity{
|
||||
Id: eventID,
|
||||
Times: ts,
|
||||
Template: Template{
|
||||
Template: libregraph.ActivityTemplate{
|
||||
Message: message,
|
||||
Variables: map[string]interface{}{
|
||||
"resource": res,
|
||||
@@ -78,26 +62,26 @@ func NewActivity(message string, res Resource, user Actor, ts Times, eventID str
|
||||
}
|
||||
|
||||
// ResponseData returns the relevant response data for the activity
|
||||
func (s *ActivitylogService) ResponseData(ref *provider.Reference, uid *user.UserId, username string, ts time.Time) (Resource, Actor, Times, error) {
|
||||
func (s *ActivitylogService) ResponseData(ref *provider.Reference, uid *user.UserId, username string, ts time.Time) (Resource, Actor, libregraph.ActivityTimes, error) {
|
||||
gwc, err := s.gws.Next()
|
||||
if err != nil {
|
||||
return Resource{}, Actor{}, Times{}, err
|
||||
return Resource{}, Actor{}, libregraph.ActivityTimes{}, err
|
||||
}
|
||||
|
||||
ctx, err := utils.GetServiceUserContext(s.cfg.ServiceAccount.ServiceAccountID, gwc, s.cfg.ServiceAccount.ServiceAccountSecret)
|
||||
if err != nil {
|
||||
return Resource{}, Actor{}, Times{}, err
|
||||
return Resource{}, Actor{}, libregraph.ActivityTimes{}, err
|
||||
}
|
||||
|
||||
info, err := utils.GetResource(ctx, ref, gwc)
|
||||
if err != nil {
|
||||
return Resource{}, Actor{}, Times{}, err
|
||||
return Resource{}, Actor{}, libregraph.ActivityTimes{}, err
|
||||
}
|
||||
|
||||
if username == "" {
|
||||
u, err := utils.GetUser(uid, gwc)
|
||||
if err != nil {
|
||||
return Resource{}, Actor{}, Times{}, err
|
||||
return Resource{}, Actor{}, libregraph.ActivityTimes{}, err
|
||||
}
|
||||
username = u.GetUsername()
|
||||
}
|
||||
@@ -108,7 +92,7 @@ func (s *ActivitylogService) ResponseData(ref *provider.Reference, uid *user.Use
|
||||
}, Actor{
|
||||
ID: uid.GetOpaqueId(),
|
||||
DisplayName: username,
|
||||
}, Times{
|
||||
}, libregraph.ActivityTimes{
|
||||
RecordedTime: ts,
|
||||
}, nil
|
||||
|
||||
|
||||
Reference in New Issue
Block a user