Line data Source code
1 : // Package presenter defines response DTOs and presentation logic.
2 : package presenter
3 :
4 : import "resume/internal/domain/entity"
5 :
6 : // AuthResponse は認証成功時のレスポンス DTO です
7 : type AuthResponse struct {
8 : UID string `json:"uid"`
9 : DisplayName *string `json:"displayName,omitempty"`
10 : Email *string `json:"email,omitempty"`
11 : PhotoURL *string `json:"photoUrl,omitempty"`
12 : Token string `json:"token,omitempty"` // アプリ側で独自セッショントークンを発行する場合
13 : }
14 :
15 : // FromDomainUserForAuth はログイン直後に返すユーザー情報を AuthResponse に変換します
16 0 : func FromDomainUserForAuth(u *entity.User, token string) AuthResponse {
17 0 : return AuthResponse{
18 0 : UID: u.UID,
19 0 : DisplayName: u.DisplayName,
20 0 : Email: u.Email,
21 0 : PhotoURL: u.PhotoURL,
22 0 : Token: token,
23 0 : }
24 0 : }
|