initial commit
This commit is contained in:
45
internal/core/creategoodsitem.go
Normal file
45
internal/core/creategoodsitem.go
Normal file
@ -0,0 +1,45 @@
|
||||
package core
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"git.loyso.art/frx/eway/internal/entity"
|
||||
)
|
||||
|
||||
type CreateGoodsItemParams struct {
|
||||
GoodsItems []entity.GoodsItem
|
||||
}
|
||||
type CreateGoodsItemResult struct {
|
||||
GoodsItems []entity.GoodsItem
|
||||
}
|
||||
|
||||
type createGoodsItemAction struct {
|
||||
baseAction
|
||||
}
|
||||
|
||||
type CreateGoodsItemAction Action[CreateGoodsItemParams, CreateGoodsItemResult]
|
||||
|
||||
func NewCreateGoodsItemAction(
|
||||
env *Env,
|
||||
) ActionDecorator[CreateGoodsItemParams, CreateGoodsItemResult, CreateGoodsItemAction] {
|
||||
ba := newBaseAction(env)
|
||||
|
||||
action := &createGoodsItemAction{
|
||||
baseAction: ba,
|
||||
}
|
||||
|
||||
return applyDecorators(action)
|
||||
}
|
||||
|
||||
func (a *createGoodsItemAction) Do(
|
||||
ctx context.Context,
|
||||
params CreateGoodsItemParams,
|
||||
) (result CreateGoodsItemResult, err error) {
|
||||
result.GoodsItems, err = a.env.repository.GoodsItem().UpsertMany(ctx, params.GoodsItems...)
|
||||
if err != nil {
|
||||
return result, fmt.Errorf("upserting items: %w", err)
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
Reference in New Issue
Block a user