Skip to content

Commit 1c8b548

Browse files
committed
chore: Refactor peer service to return structured responses
Added a `PeerResponse` model and updated `GetAvailablePeer` to return this structured response. Adjusted related logic and patterns, including file matching regex, to improve consistency. This ensures better encapsulation and more precise data handling across the service.
1 parent ccd76ff commit 1c8b548

4 files changed

Lines changed: 16 additions & 4 deletions

File tree

pkg/domain/service/peer/get_peer.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package peer
22

33
import "github.com/softwareplace/wireguard-api/pkg/models"
44

5-
func (s *serviceImpl) GetAvailablePeer() (response *models.Peer, error error, notfound bool) {
5+
func (s *serviceImpl) GetAvailablePeer() (response *models.PeerResponse, error error, notfound bool) {
66
peer, err := s.repository().GetAvailablePeer()
77

88
if err != nil {
@@ -11,5 +11,5 @@ func (s *serviceImpl) GetAvailablePeer() (response *models.Peer, error error, no
1111
}
1212
return nil, err, false
1313
}
14-
return peer, nil, false
14+
return peer.ToResponse(), nil, false
1515
}

pkg/domain/service/peer/loader.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ func (s *serviceImpl) Load() {
1515
peerResourcePath := envUtils.AppEnv().PeerResourcePath
1616

1717
// Define the pattern for matching file names
18-
pattern := regexp.MustCompile(`.*peer.*\.conf.yaml`)
18+
pattern := regexp.MustCompile(`.*peer.*\.conf`)
1919

2020
// List all matching files
2121
files, err := fileUtils.LoadMatchingFiles(peerResourcePath, pattern)

pkg/domain/service/peer/service.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
type Service interface {
99
repository() peer.Repository
1010
Load()
11-
GetAvailablePeer() (response *models.Peer, error error, notfound bool)
11+
GetAvailablePeer() (response *models.PeerResponse, error error, notfound bool)
1212
}
1313

1414
type serviceImpl struct {

pkg/models/peer.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,15 @@ type Peer struct {
2828
CreatedAt string `json:"created_at"`
2929
UpdatedAt string `json:"updated_at"`
3030
}
31+
32+
type PeerResponse struct {
33+
PeerData string `json:"peerData"`
34+
FileName string `json:"fileName"`
35+
}
36+
37+
func (p *Peer) ToResponse() *PeerResponse {
38+
return &PeerResponse{
39+
PeerData: p.PeerData,
40+
FileName: p.FileName,
41+
}
42+
}

0 commit comments

Comments
 (0)