32 lines
677 B
Go
32 lines
677 B
Go
|
package bundb
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"fmt"
|
||
|
|
||
|
"gitea.dwysokinski.me/twhelp/dcbot/internal/bundb/internal/model"
|
||
|
"gitea.dwysokinski.me/twhelp/dcbot/internal/domain"
|
||
|
"github.com/uptrace/bun"
|
||
|
)
|
||
|
|
||
|
type Group struct {
|
||
|
db *bun.DB
|
||
|
}
|
||
|
|
||
|
func NewGroup(db *bun.DB) *Group {
|
||
|
return &Group{db: db}
|
||
|
}
|
||
|
|
||
|
func (g *Group) Create(ctx context.Context, params domain.CreateGroupParams) (domain.Group, error) {
|
||
|
group := model.Group{
|
||
|
ServerID: params.ServerID(),
|
||
|
}
|
||
|
if _, err := g.db.NewInsert().
|
||
|
Model(&group).
|
||
|
Returning("*").
|
||
|
Exec(ctx); err != nil {
|
||
|
return domain.Group{}, fmt.Errorf("something went wrong while inserting group into the db: %w", err)
|
||
|
}
|
||
|
return group.ToDomain(), nil
|
||
|
}
|