adding inputs output struct based on argo naming for now

This commit is contained in:
mr 2025-02-03 11:52:49 +01:00
parent 6807614ac8
commit 64bea2a66e
3 changed files with 18 additions and 14 deletions

View File

@ -27,14 +27,16 @@ const (
* every data in base root model should inherit from this struct (only exception is the ResourceModel)
*/
type AbstractObject struct {
UUID string `json:"id,omitempty" bson:"id,omitempty" validate:"required"`
Name string `json:"name,omitempty" bson:"name,omitempty" validate:"required"`
IsDraft bool `json:"is_draft" bson:"is_draft" default:"false"`
CreatorID string `json:"creator_id" bson:"creator_id" default:"unknown"`
CreationDate time.Time `json:"creation_date" bson:"creation_date"`
UpdateDate time.Time `json:"update_date" bson:"update_date"`
UpdaterID string `json:"updater_id" bson:"updater_id"`
AccessMode AccessMode `json:"access_mode" bson:"access_mode" default:"0"`
UUID string `json:"id,omitempty" bson:"id,omitempty" validate:"required"`
Name string `json:"name,omitempty" bson:"name,omitempty" validate:"required"`
IsDraft bool `json:"is_draft" bson:"is_draft" default:"false"`
CreatorID string `json:"creator_id" bson:"creator_id" default:"unknown"`
UserCreatorID string `json:"user_creator_id,omitempty" bson:"user_creator_id,omitempty"`
CreationDate time.Time `json:"creation_date" bson:"creation_date"`
UpdateDate time.Time `json:"update_date" bson:"update_date"`
UpdaterID string `json:"updater_id" bson:"updater_id"`
UserUpdaterID string `json:"user_updater_id,omitempty" bson:"user_updater_id,omitempty"`
AccessMode AccessMode `json:"access_mode" bson:"access_mode" default:"0"`
}
func (ri *AbstractObject) GetAccessor(request *tools.APIRequest) Accessor {
@ -77,12 +79,14 @@ func (ao *AbstractObject) GetCreatorID() string {
return ao.CreatorID
}
func (ao *AbstractObject) UpToDate(user string, create bool) {
func (ao *AbstractObject) UpToDate(user string, peer string, create bool) {
ao.UpdateDate = time.Now()
ao.UpdaterID = user
ao.UpdaterID = peer
ao.UserUpdaterID = user
if create {
ao.CreationDate = time.Now()
ao.CreatorID = user
ao.CreatorID = peer
ao.UserCreatorID = user
}
}

View File

@ -17,7 +17,7 @@ type Owner struct {
func GenericStoreOne(data DBObject, a Accessor) (DBObject, int, error) {
data.GenerateID()
data.StoreDraftDefault()
data.UpToDate(a.GetPeerID(), true)
data.UpToDate(a.GetUser(), a.GetPeerID(), true)
f := dbs.Filters{
Or: map[string][]dbs.Filter{
"abstractresource.abstractobject.name": {{
@ -81,7 +81,7 @@ func GenericUpdateOne(set DBObject, id string, a Accessor, new DBObject) (DBObje
return nil, 403, errors.New("you are not allowed to delete this collaborative area")
}
set = newSet
r.UpToDate(a.GetPeerID(), false)
r.UpToDate(a.GetUser(), a.GetPeerID(), false)
if a.ShouldVerifyAuth() && !r.VerifyAuth(a.GetRequest()) {
return nil, 403, errors.New("you are not allowed to access this collaborative area")
}

View File

@ -24,7 +24,7 @@ type DBObject interface {
CanDelete() bool
StoreDraftDefault()
GetCreatorID() string
UpToDate(user string, create bool)
UpToDate(user string, peer string, create bool)
CanUpdate(set DBObject) (bool, DBObject)
VerifyAuth(request *tools.APIRequest) bool
Serialize(obj DBObject) map[string]interface{}