Line data Source code
1 : // Package presenter は
2 : package presenter
3 :
4 : import (
5 : "time"
6 :
7 : "resume/internal/adapter/http/dto/response"
8 : "resume/internal/domain/entity"
9 : )
10 :
11 : // ToUserResponse はレスポンス DTO です
12 0 : func ToUserResponse(e *entity.User) response.User {
13 0 : var lastLoginAtStr *string
14 0 : if e.LastLoginAt != nil {
15 0 : s := e.LastLoginAt.Format(time.RFC3339) // "2025-10-29T17:45:00Z" など
16 0 : lastLoginAtStr = &s
17 0 : }
18 0 : var deletedAtStr *string
19 0 : if e.DeletedAt != nil {
20 0 : d := e.DeletedAt.Format(time.RFC3339) // "2025-10-29T17:45:00Z" など
21 0 : deletedAtStr = &d
22 0 : }
23 0 : return response.User{
24 0 : ID: e.ID,
25 0 : UID: e.UID,
26 0 : Email: e.Email,
27 0 : EmailVerified: e.EmailVerified,
28 0 : DisplayName: e.DisplayName,
29 0 : PhotoURL: e.PhotoURL,
30 0 : Disabled: e.Disabled,
31 0 : LastLoginAt: lastLoginAtStr,
32 0 : CreatedAt: e.CreatedAt.Format(time.RFC3339),
33 0 : UpdatedAt: e.UpdatedAt.Format(time.RFC3339),
34 0 : DeletedAt: deletedAtStr,
35 0 : }
36 : }
|