-
Notifications
You must be signed in to change notification settings - Fork 0
/
users.go
98 lines (80 loc) · 2.72 KB
/
users.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package dto
import (
"bytes"
"github.com/zeiss/typhoon/internal/api/controllers"
"github.com/zeiss/typhoon/internal/api/models"
"github.com/zeiss/typhoon/internal/utils"
openapi "github.com/zeiss/typhoon/pkg/apis"
)
// FromCreateUserRequest ...
func FromCreateUserRequest(req openapi.CreateUserRequestObject) controllers.CreateUserCommand {
return controllers.CreateUserCommand{
AccountID: req.Body.AccountId,
Name: req.Body.Name,
}
}
// ToCreateUserResponse ...
func ToCreateUserResponse(user models.User) openapi.CreateUser201JSONResponse {
res := openapi.CreateUser201JSONResponse{}
res.Id = utils.PtrUUID(user.ID)
res.Name = user.Name
res.UpdatedAt = utils.PtrTime(user.UpdatedAt)
res.CreatedAt = utils.PtrTime(user.CreatedAt)
res.DeletedAt = utils.PtrTime(user.DeletedAt.Time)
return res
}
// FromListUsersRequest ...
func FromListUsersRequest(req openapi.ListUsersRequestObject) controllers.ListUsersQuery {
return controllers.ListUsersQuery{
AccountID: utils.UUIDPtr(req.Body.AccountId),
}
}
// ToListUsersResponse ...
func ToListUsersResponse(pagination models.Pagination[models.User]) openapi.ListUsers200JSONResponse {
res := openapi.ListUsers200JSONResponse{}
results := []openapi.User{}
for _, user := range pagination.Rows {
results = append(results, openapi.User{
Id: utils.PtrUUID(user.ID),
Name: user.Name,
CreatedAt: utils.PtrTime(user.CreatedAt),
UpdatedAt: utils.PtrTime(user.UpdatedAt),
DeletedAt: utils.PtrTime(user.DeletedAt.Time),
})
}
res.Limit = utils.PtrInt(pagination.Limit)
res.Offset = utils.PtrInt(pagination.Offset)
res.Total = utils.PtrInt(pagination.TotalRows)
res.Results = &results
return res
}
// FromGetUserCredentialsRequest ...
func FromGetUserCredentialsRequest(req openapi.GetUserCredentialsRequestObject) controllers.GetUserCredentialsQuery {
return controllers.GetUserCredentialsQuery{
UserID: req.UserId,
}
}
// ToGetUserCredentialsResponse ...
func ToGetUserCredentialsResponse(creds []byte) openapi.GetUserCredentials200ApplicationoctetStreamResponse {
res := openapi.GetUserCredentials200ApplicationoctetStreamResponse{}
body := bytes.NewReader(creds)
res.Body = body
res.ContentLength = int64(len(creds))
return res
}
// FromGetUserRequest ...
func FromGetUserRequest(req openapi.GetUserRequestObject) controllers.GetUserQuery {
return controllers.GetUserQuery{
UserID: req.UserId,
}
}
// ToGetUserResponse ...
func ToGetUserResponse(user models.User) openapi.GetUser200JSONResponse {
res := openapi.GetUser200JSONResponse{}
res.Id = utils.PtrUUID(user.ID)
res.Name = user.Name
res.CreatedAt = utils.PtrTime(user.CreatedAt)
res.UpdatedAt = utils.PtrTime(user.UpdatedAt)
res.DeletedAt = utils.PtrTime(user.DeletedAt.Time)
return res
}