Skip to content

Commit 48eb049

Browse files
author
Ulrich Lissé
committed
Extract Tracker model
1 parent 0616c0f commit 48eb049

File tree

3 files changed

+24
-21
lines changed

3 files changed

+24
-21
lines changed

domain/tracker.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package domain
2+
3+
import "time"
4+
5+
type TrackingTimeEntry struct {
6+
Id string
7+
Minutes Minutes
8+
Since time.Time
9+
}
10+
11+
type StoppedTimeEntry struct {
12+
Id string
13+
Minutes Minutes
14+
}

mite/api.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ type TimeEntryApi interface {
2323
}
2424

2525
type TrackerApi interface {
26-
Tracker() (*TrackingTimeEntry, error)
27-
StartTracker(id string) (*TrackingTimeEntry, *StoppedTimeEntry, error)
28-
StopTracker(id string) (*StoppedTimeEntry, error)
26+
Tracker() (*domain.TrackingTimeEntry, error)
27+
StartTracker(id string) (*domain.TrackingTimeEntry, *domain.StoppedTimeEntry, error)
28+
StopTracker(id string) (*domain.StoppedTimeEntry, error)
2929
}
3030

3131
type CustomerApi interface{}

mite/tracker.go

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,6 @@ import (
77
"time"
88
)
99

10-
type TrackingTimeEntry struct {
11-
Id string
12-
Minutes domain.Minutes
13-
Since time.Time
14-
}
15-
16-
type StoppedTimeEntry struct {
17-
Id string
18-
Minutes domain.Minutes
19-
}
20-
2110
type trackerResponse struct {
2211
Tracker struct {
2312
TrackingTimeEntry *struct {
@@ -32,30 +21,30 @@ type trackerResponse struct {
3221
} `json:"tracker"`
3322
}
3423

35-
func (r *trackerResponse) toTrackingTimeEntry() *TrackingTimeEntry {
24+
func (r *trackerResponse) toTrackingTimeEntry() *domain.TrackingTimeEntry {
3625
if r.Tracker.TrackingTimeEntry == nil {
3726
return nil
3827
}
3928

40-
return &TrackingTimeEntry{
29+
return &domain.TrackingTimeEntry{
4130
Id: strconv.Itoa(r.Tracker.TrackingTimeEntry.Id),
4231
Minutes: domain.NewMinutes(r.Tracker.TrackingTimeEntry.Minutes),
4332
Since: r.Tracker.TrackingTimeEntry.Since,
4433
}
4534
}
4635

47-
func (r *trackerResponse) toStoppedTimeEntry() *StoppedTimeEntry {
36+
func (r *trackerResponse) toStoppedTimeEntry() *domain.StoppedTimeEntry {
4837
if r.Tracker.StoppedTimeEntry == nil {
4938
return nil
5039
}
5140

52-
return &StoppedTimeEntry{
41+
return &domain.StoppedTimeEntry{
5342
Id: strconv.Itoa(r.Tracker.StoppedTimeEntry.Id),
5443
Minutes: domain.NewMinutes(r.Tracker.StoppedTimeEntry.Minutes),
5544
}
5645
}
5746

58-
func (a *api) Tracker() (*TrackingTimeEntry, error) {
47+
func (a *api) Tracker() (*domain.TrackingTimeEntry, error) {
5948
tr := trackerResponse{}
6049
err := a.get("/tracker.json", &tr)
6150
if err != nil {
@@ -65,7 +54,7 @@ func (a *api) Tracker() (*TrackingTimeEntry, error) {
6554
return tr.toTrackingTimeEntry(), nil
6655
}
6756

68-
func (a *api) StartTracker(id string) (*TrackingTimeEntry, *StoppedTimeEntry, error) {
57+
func (a *api) StartTracker(id string) (*domain.TrackingTimeEntry, *domain.StoppedTimeEntry, error) {
6958
tr := &trackerResponse{}
7059
err := a.patch(fmt.Sprintf("/tracker/%s.json", id), nil, tr)
7160
if err != nil {
@@ -75,7 +64,7 @@ func (a *api) StartTracker(id string) (*TrackingTimeEntry, *StoppedTimeEntry, er
7564
return tr.toTrackingTimeEntry(), tr.toStoppedTimeEntry(), nil
7665
}
7766

78-
func (a *api) StopTracker(id string) (*StoppedTimeEntry, error) {
67+
func (a *api) StopTracker(id string) (*domain.StoppedTimeEntry, error) {
7968
tr := &trackerResponse{}
8069
err := a.delete(fmt.Sprintf("/tracker/%s.json", id), tr)
8170
if err != nil {

0 commit comments

Comments
 (0)