mirror of
https://github.com/hanzoai/team.git
synced 2026-09-30 01:57:35 +00:00
* Adds a mechanism to delete CPA values for a given user This requires improving the Property Value service to enable delete all values for a given target, so a new method was created that allows to delete filtering by targetType and targetID (required) and optionally for a specific groupID in case the caller wants to affect all values for a target (useful in case you remove a post for example and want to delete all values pointing to that post regardless of the feature they belong to) or only those that belong to a specific feature. * Fix property value tests * Fix after merge and update method name * Fix linter --------- Co-authored-by: Miguel de la Cruz <[email protected]> Co-authored-by: Mattermost Build <[email protected]>
63 lines
2.1 KiB
Go
63 lines
2.1 KiB
Go
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
package properties
|
|
|
|
import (
|
|
"github.com/mattermost/mattermost/server/public/model"
|
|
)
|
|
|
|
func (ps *PropertyService) CreatePropertyValue(value *model.PropertyValue) (*model.PropertyValue, error) {
|
|
return ps.valueStore.Create(value)
|
|
}
|
|
|
|
func (ps *PropertyService) GetPropertyValue(groupID, id string) (*model.PropertyValue, error) {
|
|
return ps.valueStore.Get(groupID, id)
|
|
}
|
|
|
|
func (ps *PropertyService) GetPropertyValues(groupID string, ids []string) ([]*model.PropertyValue, error) {
|
|
return ps.valueStore.GetMany(groupID, ids)
|
|
}
|
|
|
|
func (ps *PropertyService) SearchPropertyValues(groupID, targetID string, opts model.PropertyValueSearchOpts) ([]*model.PropertyValue, error) {
|
|
// groupID and targetID are part of the search method signature to
|
|
// incentivize the use of the database indexes in searches
|
|
opts.GroupID = groupID
|
|
opts.TargetID = targetID
|
|
return ps.valueStore.SearchPropertyValues(opts)
|
|
}
|
|
|
|
func (ps *PropertyService) UpdatePropertyValue(groupID string, value *model.PropertyValue) (*model.PropertyValue, error) {
|
|
values, err := ps.UpdatePropertyValues(groupID, []*model.PropertyValue{value})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return values[0], nil
|
|
}
|
|
|
|
func (ps *PropertyService) UpdatePropertyValues(groupID string, values []*model.PropertyValue) ([]*model.PropertyValue, error) {
|
|
return ps.valueStore.Update(groupID, values)
|
|
}
|
|
|
|
func (ps *PropertyService) UpsertPropertyValue(value *model.PropertyValue) (*model.PropertyValue, error) {
|
|
values, err := ps.UpsertPropertyValues([]*model.PropertyValue{value})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return values[0], nil
|
|
}
|
|
|
|
func (ps *PropertyService) UpsertPropertyValues(values []*model.PropertyValue) ([]*model.PropertyValue, error) {
|
|
return ps.valueStore.Upsert(values)
|
|
}
|
|
|
|
func (ps *PropertyService) DeletePropertyValue(groupID, id string) error {
|
|
return ps.valueStore.Delete(groupID, id)
|
|
}
|
|
|
|
func (ps *PropertyService) DeletePropertyValuesForTarget(groupID string, targetType string, targetID string) error {
|
|
return ps.valueStore.DeleteForTarget(groupID, targetType, targetID)
|
|
}
|