Line data Source code
1 : // Package contact は 連絡先 に関するユースケース(アプリケーションロジック)を提供します。
2 : // ドメイン層のエンティティやリポジトリを操作し、アプリケーション全体で再利用可能なビジネスフローを実装します。
3 : package contact
4 :
5 : import "context"
6 :
7 : // ExistsUserContact は 連絡の存在 を 確認 します
8 : func (uc *Interactor) ExistsUserContact(
9 : ctx context.Context,
10 : in ExistsUserContactInput,
11 0 : ) (ExistsUserContactOutput, error) {
12 0 : if in.UserID == 0 {
13 0 : return ExistsUserContactOutput{}, errUnauthorized()
14 0 : }
15 :
16 0 : var exists bool
17 0 : if err := uc.tx.Do(ctx, func(txCtx context.Context) error {
18 0 : var err error
19 0 : exists, err = uc.ucRepo.ExistsByUserID(txCtx, in.UserID)
20 0 : return err
21 0 : }); err != nil {
22 0 : return ExistsUserContactOutput{}, err
23 0 : }
24 0 : return ToExistsUserContactOutput(exists), nil
25 : }
|