48 lines
1003 B
Go
48 lines
1003 B
Go
package privilege
|
|
|
|
import (
|
|
"context"
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
"go.mongodb.org/mongo-driver/mongo"
|
|
"go.mongodb.org/mongo-driver/mongo/options"
|
|
"go.uber.org/zap"
|
|
"hub_admin_backend_service/internal/models"
|
|
)
|
|
|
|
type Deps struct {
|
|
Mdb *mongo.Collection
|
|
Logger *zap.Logger
|
|
}
|
|
|
|
type Privilege struct {
|
|
mdb *mongo.Collection
|
|
logger *zap.Logger
|
|
}
|
|
|
|
func NewPrivilegeRepo(deps Deps) *Privilege {
|
|
return &Privilege{
|
|
mdb: deps.Mdb,
|
|
logger: deps.Logger,
|
|
}
|
|
}
|
|
|
|
func (p *Privilege) GetAllPrivileges(ctx context.Context) ([]models.Privilege, error) {
|
|
filter := bson.M{"isDeleted": false}
|
|
opts := options.Find()
|
|
|
|
cursor, err := p.mdb.Find(ctx, filter, opts)
|
|
if err != nil {
|
|
p.logger.Error("failed to find privileges", zap.Error(err))
|
|
return nil, err
|
|
}
|
|
defer cursor.Close(ctx)
|
|
|
|
var privileges []models.Privilege
|
|
if err = cursor.All(ctx, &privileges); err != nil {
|
|
p.logger.Error("failed to decode privileges", zap.Error(err))
|
|
return nil, err
|
|
}
|
|
|
|
return privileges, nil
|
|
}
|