kopia lustrzana https://github.com/reiver/greatape
193 wiersze
6.5 KiB
Go
193 wiersze
6.5 KiB
Go
package core
|
|
|
|
import (
|
|
. "github.com/reiver/greatape/components/constants"
|
|
. "github.com/reiver/greatape/components/contracts"
|
|
. "github.com/xeronith/diamante/contracts/logging"
|
|
. "github.com/xeronith/diamante/contracts/security"
|
|
. "github.com/xeronith/diamante/contracts/settings"
|
|
. "github.com/xeronith/diamante/contracts/system"
|
|
. "github.com/xeronith/diamante/system"
|
|
)
|
|
|
|
// noinspection GoSnakeCaseUsage
|
|
const ACTIVITY_PUB_MEDIA_MANAGER = "ActivityPubMediaManager"
|
|
|
|
type activityPubMediaManager struct {
|
|
systemComponent
|
|
cache ICache
|
|
}
|
|
|
|
func newActivityPubMediaManager(configuration IConfiguration, logger ILogger, dependencies ...ISystemComponent) IActivityPubMediaManager {
|
|
manager := &activityPubMediaManager{
|
|
systemComponent: newSystemComponent(configuration, logger),
|
|
cache: NewCache(),
|
|
}
|
|
|
|
if err := manager.ResolveDependencies(dependencies...); err != nil {
|
|
return nil
|
|
}
|
|
|
|
return manager
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) Name() string {
|
|
return ACTIVITY_PUB_MEDIA_MANAGER
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) ResolveDependencies(_ ...ISystemComponent) error {
|
|
return nil
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) Load() error {
|
|
return nil
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) Reload() error {
|
|
return manager.Load()
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) OnCacheChanged(callback ActivityPubMediaCacheCallback) {
|
|
manager.cache.OnChanged(callback)
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) Count() int {
|
|
return manager.cache.Size()
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) Exists(id int64) bool {
|
|
return manager.Find(id) != nil
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) ExistsWhich(condition ActivityPubMediaCondition) bool {
|
|
var activityPubMedias ActivityPubMedias
|
|
manager.ForEach(func(activityPubMedia IActivityPubMedia) {
|
|
if condition(activityPubMedia) {
|
|
activityPubMedias = append(activityPubMedias, activityPubMedia)
|
|
}
|
|
})
|
|
|
|
return len(activityPubMedias) > 0
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) ListActivityPubMedias(_ /* pageIndex */ uint32, _ /* pageSize */ uint32, _ /* criteria */ string, _ Identity) IActivityPubMediaCollection {
|
|
return manager.Filter(ActivityPubMediaPassThroughFilter)
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) GetActivityPubMedia(id int64, _ Identity) (IActivityPubMedia, error) {
|
|
if activityPubMedia := manager.Find(id); activityPubMedia == nil {
|
|
return nil, ERROR_ACTIVITY_PUB_MEDIA_NOT_FOUND
|
|
} else {
|
|
return activityPubMedia, nil
|
|
}
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) AddActivityPubMedia(editor Identity) (IActivityPubMedia, error) {
|
|
return nil, ERROR_NOT_IMPLEMENTED
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) AddActivityPubMediaWithCustomId(id int64, editor Identity) (IActivityPubMedia, error) {
|
|
return nil, ERROR_NOT_IMPLEMENTED
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) AddActivityPubMediaObject(activityPubMedia IActivityPubMedia, editor Identity) (IActivityPubMedia, error) {
|
|
return nil, ERROR_NOT_IMPLEMENTED
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) AddActivityPubMediaAtomic(transaction ITransaction, editor Identity) (IActivityPubMedia, error) {
|
|
return nil, ERROR_NOT_IMPLEMENTED
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) AddActivityPubMediaWithCustomIdAtomic(id int64, transaction ITransaction, editor Identity) (IActivityPubMedia, error) {
|
|
return nil, ERROR_NOT_IMPLEMENTED
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) AddActivityPubMediaObjectAtomic(transaction ITransaction, activityPubMedia IActivityPubMedia, editor Identity) (IActivityPubMedia, error) {
|
|
return nil, ERROR_NOT_IMPLEMENTED
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) Log(source string, editor Identity, payload string) {
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) UpdateActivityPubMedia(id int64, editor Identity) (IActivityPubMedia, error) {
|
|
return nil, ERROR_NOT_IMPLEMENTED
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) UpdateActivityPubMediaObject(id int64, activityPubMedia IActivityPubMedia, editor Identity) (IActivityPubMedia, error) {
|
|
return nil, ERROR_NOT_IMPLEMENTED
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) UpdateActivityPubMediaAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubMedia, error) {
|
|
return nil, ERROR_NOT_IMPLEMENTED
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) UpdateActivityPubMediaObjectAtomic(transaction ITransaction, id int64, activityPubMedia IActivityPubMedia, editor Identity) (IActivityPubMedia, error) {
|
|
return nil, ERROR_NOT_IMPLEMENTED
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) AddOrUpdateActivityPubMediaObject(id int64, activityPubMedia IActivityPubMedia, editor Identity) (IActivityPubMedia, error) {
|
|
if manager.Exists(id) {
|
|
return manager.UpdateActivityPubMediaObject(id, activityPubMedia, editor)
|
|
} else {
|
|
return manager.AddActivityPubMediaObject(activityPubMedia, editor)
|
|
}
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) AddOrUpdateActivityPubMediaObjectAtomic(transaction ITransaction, id int64, activityPubMedia IActivityPubMedia, editor Identity) (IActivityPubMedia, error) {
|
|
if manager.Exists(id) {
|
|
return manager.UpdateActivityPubMediaObjectAtomic(transaction, id, activityPubMedia, editor)
|
|
} else {
|
|
return manager.AddActivityPubMediaObjectAtomic(transaction, activityPubMedia, editor)
|
|
}
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) RemoveActivityPubMedia(id int64, editor Identity) (IActivityPubMedia, error) {
|
|
return nil, ERROR_NOT_IMPLEMENTED
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) RemoveActivityPubMediaAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubMedia, error) {
|
|
return nil, ERROR_NOT_IMPLEMENTED
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) Find(id int64) IActivityPubMedia {
|
|
if object, exists := manager.cache.Get(id); !exists {
|
|
return nil
|
|
} else {
|
|
return object.(IActivityPubMedia)
|
|
}
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) ForEach(iterator ActivityPubMediaIterator) {
|
|
manager.cache.ForEachValue(func(object ISystemObject) {
|
|
iterator(object.(IActivityPubMedia))
|
|
})
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) Filter(predicate ActivityPubMediaFilterPredicate) IActivityPubMediaCollection {
|
|
activityPubMedias := NewActivityPubMedias()
|
|
if predicate == nil {
|
|
return activityPubMedias
|
|
}
|
|
|
|
manager.ForEach(func(activityPubMedia IActivityPubMedia) {
|
|
if predicate(activityPubMedia) {
|
|
activityPubMedias.Append(activityPubMedia)
|
|
}
|
|
})
|
|
|
|
return activityPubMedias
|
|
}
|
|
|
|
func (manager *activityPubMediaManager) Map(predicate ActivityPubMediaMapPredicate) IActivityPubMediaCollection {
|
|
activityPubMedias := NewActivityPubMedias()
|
|
if predicate == nil {
|
|
return activityPubMedias
|
|
}
|
|
|
|
manager.ForEach(func(activityPubMedia IActivityPubMedia) {
|
|
activityPubMedias.Append(predicate(activityPubMedia))
|
|
})
|
|
|
|
return activityPubMedias
|
|
}
|