33 lines
1.3 KiB
Go
33 lines
1.3 KiB
Go
package organization
|
|
|
|
import (
|
|
"context"
|
|
|
|
"git.sendico.io/tech/sxchnge/bff/pkg/model"
|
|
"git.sendico.io/tech/sxchnge/bff/pkg/mutil/mzap"
|
|
"go.mongodb.org/mongo-driver/v2/bson"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
// SetArchived sets the archived status of an organization and optionally cascades to projects, tasks, comments, and reactions
|
|
func (db *OrganizationDB) SetArchived(ctx context.Context, accountRef, organizationRef bson.ObjectID, archived, cascade bool) error {
|
|
db.DBImp.Logger.Debug("Setting organization archived status", mzap.OrgRef(organizationRef), zap.Bool("archived", archived), zap.Bool("cascade", cascade))
|
|
|
|
// Get the organization first
|
|
var organization model.Organization
|
|
if err := db.Get(ctx, accountRef, organizationRef, &organization); err != nil {
|
|
db.DBImp.Logger.Warn("Error retrieving organization for archival", zap.Error(err), mzap.OrgRef(organizationRef))
|
|
return err
|
|
}
|
|
|
|
// Update the organization's archived status
|
|
organization.SetArchived(archived)
|
|
if err := db.Update(ctx, accountRef, &organization); err != nil {
|
|
db.DBImp.Logger.Warn("Error updating organization archived status", zap.Error(err), mzap.OrgRef(organizationRef))
|
|
return err
|
|
}
|
|
|
|
db.DBImp.Logger.Debug("Successfully set organization archived status", mzap.OrgRef(organizationRef), zap.Bool("archived", archived))
|
|
return nil
|
|
}
|