Skip to content

Commit 89653eb

Browse files
committed
map nil struct saftey
1 parent d229607 commit 89653eb

2 files changed

Lines changed: 71 additions & 30 deletions

File tree

internal/mapper/domain_to_dto.go

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,23 @@ package mapper
33
import (
44
"github.com/acmcsufoss/api.acmcsuf.com/internal/domain"
55

6-
dto_response "github.com/acmcsufoss/api.acmcsuf.com/internal/dto/response"
6+
"github.com/acmcsufoss/api.acmcsuf.com/internal/dto"
77
)
88

99
// File deticated to mapping domain models to dto response models
1010

11-
func ToAnnouncementDTO(a *domain.Announcement) dto_response.Announcement {
12-
return dto_response.Announcement{
11+
func ToAnnouncementDTO(a *domain.Announcement) dto.Announcement {
12+
return dto.Announcement{
1313
Uuid: a.Uuid,
1414
Visibility: a.Visibility,
1515
AnnounceAt: a.AnnounceAt.Unix(),
16-
DiscordChannelID: *a.DiscordChannelID,
17-
DiscordMessageID: *a.DiscordMessageID,
16+
DiscordChannelID: a.DiscordChannelID,
17+
DiscordMessageID: a.DiscordMessageID,
1818
}
1919
}
2020

21-
func ToEventEventDTO(e *domain.Event) dto_response.Event {
22-
return dto_response.Event{
21+
func ToEventEventDTO(e *domain.Event) dto.Event {
22+
return dto.Event{
2323
Uuid: e.Uuid,
2424
Location: e.Location,
2525
StartAt: e.StartAt.Unix(),
@@ -29,18 +29,18 @@ func ToEventEventDTO(e *domain.Event) dto_response.Event {
2929
}
3030
}
3131

32-
func ToOfficerDTO(o domain.Officer) dto_response.Officer {
33-
return dto_response.Officer{
32+
func ToOfficerDTO(o domain.Officer) dto.Officer {
33+
return dto.Officer{
3434
Uuid: o.Uuid,
3535
FullName: o.FullName,
36-
Picture: *o.Picture,
37-
Github: *o.Github,
38-
Discord: *o.Discord,
36+
Picture: o.Picture,
37+
Github: o.Github,
38+
Discord: o.Discord,
3939
}
4040
}
4141

42-
func ToPositionDTO(p *domain.Position) dto_response.Position {
43-
return dto_response.Position{
42+
func ToPositionDTO(p *domain.Position) dto.Position {
43+
return dto.Position{
4444
Oid: p.Oid,
4545
Semester: p.Semester,
4646
Tier: p.Tier,
@@ -50,11 +50,11 @@ func ToPositionDTO(p *domain.Position) dto_response.Position {
5050
}
5151
}
5252

53-
func ToTierDTO(t *domain.Tier) dto_response.Tier {
54-
return dto_response.Tier{
53+
func ToTierDTO(t *domain.Tier) dto.Tier {
54+
return dto.Tier{
5555
Tier: t.Tier,
56-
Title: *t.Title,
57-
Tindex: *t.Tindex,
58-
Team: *t.Team,
56+
Title: t.Title,
57+
Tindex: t.Tindex,
58+
Team: t.Team,
5959
}
6060
}

internal/mapper/dto_to_domain.go

Lines changed: 52 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,14 @@ import (
44
"time"
55

66
"github.com/acmcsufoss/api.acmcsuf.com/internal/domain"
7-
dto_request "github.com/acmcsufoss/api.acmcsuf.com/internal/dto/request"
7+
"github.com/acmcsufoss/api.acmcsuf.com/internal/dto"
88
)
99

10-
func ToAnnouncementDomain(a *dto_request.Announcement) domain.Announcement {
10+
func ToAnnouncementDomain(a *dto.Announcement) domain.Announcement {
11+
if a == nil {
12+
return domain.Announcement{}
13+
}
14+
1115
return domain.Announcement{
1216
Uuid: a.Uuid,
1317
Visibility: a.Visibility,
@@ -17,11 +21,16 @@ func ToAnnouncementDomain(a *dto_request.Announcement) domain.Announcement {
1721
}
1822
}
1923

20-
func ToUpdateAnnouncementDomain(a *dto_request.UpdateAnnouncement) domain.UpdateAnnouncement {
24+
func ToUpdateAnnouncementDomain(a *dto.UpdateAnnouncement) domain.UpdateAnnouncement {
25+
if a == nil {
26+
return domain.UpdateAnnouncement{}
27+
}
28+
2129
var announceAt time.Time
2230
if a.AnnounceAt != nil {
2331
announceAt = time.Unix(*a.AnnounceAt, 0)
2432
}
33+
2534
return domain.UpdateAnnouncement{
2635
Uuid: a.Uuid,
2736
Visibility: a.Visibility,
@@ -31,7 +40,11 @@ func ToUpdateAnnouncementDomain(a *dto_request.UpdateAnnouncement) domain.Update
3140
}
3241
}
3342

34-
func ToEventDomain(e *dto_request.Event) domain.Event {
43+
func ToEventDomain(e *dto.Event) domain.Event {
44+
if e == nil {
45+
return domain.Event{}
46+
}
47+
3548
return domain.Event{
3649
Uuid: e.Uuid,
3750
Location: e.Location,
@@ -42,7 +55,11 @@ func ToEventDomain(e *dto_request.Event) domain.Event {
4255
}
4356
}
4457

45-
func ToUpdateEventDomain(e *dto_request.UpdateEvent) domain.UpdateEvent {
58+
func ToUpdateEventDomain(e *dto.UpdateEvent) domain.UpdateEvent {
59+
if e == nil {
60+
return domain.UpdateEvent{}
61+
}
62+
4663
startAt := time.Unix(*e.StartAt, 0)
4764
endAt := time.Unix(*e.EndAt, 0)
4865
return domain.UpdateEvent{
@@ -55,7 +72,11 @@ func ToUpdateEventDomain(e *dto_request.UpdateEvent) domain.UpdateEvent {
5572
}
5673
}
5774

58-
func ToOfficerDomain(o *dto_request.Officer) domain.Officer {
75+
func ToOfficerDomain(o *dto.Officer) domain.Officer {
76+
if o == nil {
77+
return domain.Officer{}
78+
}
79+
5980
return domain.Officer{
6081
FullName: o.FullName,
6182
Picture: o.Picture,
@@ -64,7 +85,11 @@ func ToOfficerDomain(o *dto_request.Officer) domain.Officer {
6485
}
6586
}
6687

67-
func ToUpdateOfficerDomain(o *dto_request.UpdateOfficer) domain.UpdateOfficer {
88+
func ToUpdateOfficerDomain(o *dto.UpdateOfficer) domain.UpdateOfficer {
89+
if o == nil {
90+
return domain.UpdateOfficer{}
91+
}
92+
6893
return domain.UpdateOfficer{
6994
FullName: o.FullName,
7095
Picture: o.Picture,
@@ -73,7 +98,11 @@ func ToUpdateOfficerDomain(o *dto_request.UpdateOfficer) domain.UpdateOfficer {
7398
}
7499
}
75100

76-
func ToPositionDomain(p *dto_request.Position) domain.Position {
101+
func ToPositionDomain(p *dto.Position) domain.Position {
102+
if p == nil {
103+
return domain.Position{}
104+
}
105+
77106
return domain.Position{
78107
Oid: p.Oid,
79108
Semester: p.Semester,
@@ -84,7 +113,11 @@ func ToPositionDomain(p *dto_request.Position) domain.Position {
84113
}
85114
}
86115

87-
func ToUpdatePositionDomain(p *dto_request.UpdatePosition) domain.UpdatePosition {
116+
func ToUpdatePositionDomain(p *dto.UpdatePosition) domain.UpdatePosition {
117+
if p == nil {
118+
return domain.UpdatePosition{}
119+
}
120+
88121
return domain.UpdatePosition{
89122
Oid: p.Oid,
90123
Semester: p.Semester,
@@ -95,7 +128,11 @@ func ToUpdatePositionDomain(p *dto_request.UpdatePosition) domain.UpdatePosition
95128
}
96129
}
97130

98-
func ToTierDomain(t *dto_request.Tier) domain.Tier {
131+
func ToTierDomain(t *dto.Tier) domain.Tier {
132+
if t == nil {
133+
return domain.Tier{}
134+
}
135+
99136
return domain.Tier{
100137
Tier: t.Tier,
101138
Title: t.Title,
@@ -104,7 +141,11 @@ func ToTierDomain(t *dto_request.Tier) domain.Tier {
104141
}
105142
}
106143

107-
func ToUpdateTierDomain(t *dto_request.UpdateTier) domain.UpdateTier {
144+
func ToUpdateTierDomain(t *dto.UpdateTier) domain.UpdateTier {
145+
if t == nil {
146+
return domain.UpdateTier{}
147+
}
148+
108149
return domain.UpdateTier{
109150
Tier: t.Tier,
110151
Title: t.Title,

0 commit comments

Comments
 (0)