Line data Source code
1 : // Package skill は Skillに関するユースケースの実装を提供します
2 : package skill
3 :
4 : import "context"
5 :
6 : // ListUserSkill は Skill一覧取得を実行します
7 : func (uc *Interactor) ListUserSkill(
8 : ctx context.Context,
9 : in ListUserSkillInput,
10 0 : ) (ListUserSkillOutput, error) {
11 0 : if in.UserID == 0 {
12 0 : return ListUserSkillOutput{}, errUnauthorized()
13 0 : }
14 :
15 0 : var out ListUserSkillOutput
16 0 : err := uc.tx.Do(ctx, func(txCtx context.Context) error {
17 0 : items, total, err := uc.usRepo.FindByUserIDWithSpec(txCtx, in.UserID, in)
18 0 : if err != nil {
19 0 : return err
20 0 : }
21 0 : out = ToListUserSkillOutput(items, total)
22 0 : return nil
23 : })
24 0 : if err != nil {
25 0 : return ListUserSkillOutput{}, err
26 0 : }
27 :
28 0 : return out, nil
29 : }
|