35 lines
752 B
Go
35 lines
752 B
Go
package organizationdb
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/tech/sendico/pkg/auth"
|
|
"github.com/tech/sendico/pkg/db/policy"
|
|
"github.com/tech/sendico/pkg/mlogger"
|
|
"github.com/tech/sendico/pkg/model"
|
|
"github.com/tech/sendico/pkg/mservice"
|
|
"go.mongodb.org/mongo-driver/mongo"
|
|
)
|
|
|
|
type OrganizationDB struct {
|
|
auth.ProtectedDBImp[*model.Organization]
|
|
}
|
|
|
|
func Create(ctx context.Context,
|
|
logger mlogger.Logger,
|
|
enforcer auth.Enforcer,
|
|
pdb policy.DB,
|
|
db *mongo.Database,
|
|
) (*OrganizationDB, error) {
|
|
p, err := auth.CreateDBImp[*model.Organization](ctx, logger, pdb, enforcer, mservice.Organizations, db)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
res := &OrganizationDB{
|
|
ProtectedDBImp: *p,
|
|
}
|
|
p.DBImp.SetDeleter(res.DeleteCascade)
|
|
return res, nil
|
|
}
|