Line data Source code
1 : package profile
2 :
3 : import "context"
4 :
5 : // HasUserAddress は HasUserAddress ユースケースの実装本体です。
6 : // Interactor.HasUserAddress から呼ばれる private 実装にしています。
7 0 : func (uc *Interactor) HasUserAddress(ctx context.Context, in UserInput) (HasUserAddressOutput, error) {
8 0 : if in.UserID == 0 {
9 0 : return HasUserAddressOutput{}, errUnauthorized()
10 0 : }
11 :
12 0 : var exists bool
13 0 : if err := uc.tx.Do(ctx, func(txCtx context.Context) error {
14 0 : var err error
15 0 : exists, err = uc.uaRepo.HasAnyAddress(txCtx, in.UserID)
16 0 : return err
17 0 : }); err != nil {
18 0 : return HasUserAddressOutput{}, errCheckAddressFailed(err)
19 0 : }
20 0 : return assembleHasUserAddressOutput(exists), nil
21 : }
|