Skip to content

Commit 51616ed

Browse files
committed
use interface for dump service
1 parent d7e4d3c commit 51616ed

File tree

1 file changed

+24
-19
lines changed

1 file changed

+24
-19
lines changed

service/dump/dump.go

+24-19
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,33 @@ package dump
44
import (
55
"encoding/base64"
66
"fmt"
7-
"os"
7+
"io"
88

99
"github.com/micromdm/nanomdm/mdm"
1010
"github.com/micromdm/nanomdm/service"
1111
)
1212

13+
type DumpWriter interface {
14+
io.Writer
15+
io.StringWriter
16+
}
17+
1318
// Dumper is a service middleware that dumps MDM requests and responses
1419
// to a file handle.
1520
type Dumper struct {
1621
next service.CheckinAndCommandService
17-
file *os.File
22+
w DumpWriter
1823
cmd bool
1924
bst bool
2025
usr bool
2126
dm bool
2227
}
2328

2429
// New creates a new dumper service middleware.
25-
func New(next service.CheckinAndCommandService, file *os.File) *Dumper {
30+
func New(next service.CheckinAndCommandService, w DumpWriter) *Dumper {
2631
return &Dumper{
2732
next: next,
28-
file: file,
33+
w: w,
2934
cmd: true,
3035
bst: true,
3136
usr: true,
@@ -34,70 +39,70 @@ func New(next service.CheckinAndCommandService, file *os.File) *Dumper {
3439
}
3540

3641
func (svc *Dumper) Authenticate(r *mdm.Request, m *mdm.Authenticate) error {
37-
svc.file.Write(m.Raw)
42+
svc.w.Write(m.Raw)
3843
return svc.next.Authenticate(r, m)
3944
}
4045

4146
func (svc *Dumper) TokenUpdate(r *mdm.Request, m *mdm.TokenUpdate) error {
42-
svc.file.Write(m.Raw)
47+
svc.w.Write(m.Raw)
4348
return svc.next.TokenUpdate(r, m)
4449
}
4550

4651
func (svc *Dumper) CheckOut(r *mdm.Request, m *mdm.CheckOut) error {
47-
svc.file.Write(m.Raw)
52+
svc.w.Write(m.Raw)
4853
return svc.next.CheckOut(r, m)
4954
}
5055

5156
func (svc *Dumper) UserAuthenticate(r *mdm.Request, m *mdm.UserAuthenticate) ([]byte, error) {
52-
svc.file.Write(m.Raw)
57+
svc.w.Write(m.Raw)
5358
respBytes, err := svc.next.UserAuthenticate(r, m)
5459
if svc.usr && respBytes != nil && len(respBytes) > 0 {
55-
svc.file.Write(respBytes)
60+
svc.w.Write(respBytes)
5661
}
5762
return respBytes, err
5863
}
5964

6065
func (svc *Dumper) SetBootstrapToken(r *mdm.Request, m *mdm.SetBootstrapToken) error {
61-
svc.file.Write(m.Raw)
66+
svc.w.Write(m.Raw)
6267
return svc.next.SetBootstrapToken(r, m)
6368
}
6469

6570
func (svc *Dumper) GetBootstrapToken(r *mdm.Request, m *mdm.GetBootstrapToken) (*mdm.BootstrapToken, error) {
66-
svc.file.Write(m.Raw)
71+
svc.w.Write(m.Raw)
6772
bsToken, err := svc.next.GetBootstrapToken(r, m)
6873
if svc.bst && bsToken != nil && len(bsToken.BootstrapToken) > 0 {
69-
svc.file.Write([]byte(fmt.Sprintf("Bootstrap token: %s\n", bsToken.BootstrapToken.String())))
74+
svc.w.Write([]byte(fmt.Sprintf("Bootstrap token: %s\n", bsToken.BootstrapToken.String())))
7075
}
7176
return bsToken, err
7277
}
7378

7479
func (svc *Dumper) GetToken(r *mdm.Request, m *mdm.GetToken) (*mdm.GetTokenResponse, error) {
75-
svc.file.Write(m.Raw)
80+
svc.w.Write(m.Raw)
7681
token, err := svc.next.GetToken(r, m)
7782
if token != nil && len(token.TokenData) > 0 {
7883
b64 := base64.StdEncoding.EncodeToString(token.TokenData)
79-
svc.file.WriteString("GetToken TokenData: " + b64 + "\n")
84+
svc.w.WriteString("GetToken TokenData: " + b64 + "\n")
8085
}
8186
return token, err
8287
}
8388

8489
func (svc *Dumper) CommandAndReportResults(r *mdm.Request, results *mdm.CommandResults) (*mdm.Command, error) {
85-
svc.file.Write(results.Raw)
90+
svc.w.Write(results.Raw)
8691
cmd, err := svc.next.CommandAndReportResults(r, results)
8792
if svc.cmd && err != nil && cmd != nil && cmd.Raw != nil {
88-
svc.file.Write(cmd.Raw)
93+
svc.w.Write(cmd.Raw)
8994
}
9095
return cmd, err
9196
}
9297

9398
func (svc *Dumper) DeclarativeManagement(r *mdm.Request, m *mdm.DeclarativeManagement) ([]byte, error) {
94-
svc.file.Write(m.Raw)
99+
svc.w.Write(m.Raw)
95100
if len(m.Data) > 0 {
96-
svc.file.Write(m.Data)
101+
svc.w.Write(m.Data)
97102
}
98103
respBytes, err := svc.next.DeclarativeManagement(r, m)
99104
if svc.dm && err != nil {
100-
svc.file.Write(respBytes)
105+
svc.w.Write(respBytes)
101106
}
102107
return respBytes, err
103108
}

0 commit comments

Comments
 (0)