diff --git a/pkg/rest/api.go b/pkg/rest/api.go index 0f249b6..2a02206 100644 --- a/pkg/rest/api.go +++ b/pkg/rest/api.go @@ -48,17 +48,7 @@ func New(baseURL url.URL) *api { incidents: newIncidentsAPI(&baseURL), users: new(usersAPI), } - s.shares = newShareAPI(&baseURL, - ShareHandlers{ - ShareRequestCall: s.calls.shareCallRoute, - ShareRequestCallInfo: respondShareHandler(s.calls.getCallInfo), - ShareRequestCallDL: s.calls.shareCallDLRoute, - ShareRequestIncident: respondShareHandler(s.incidents.getIncident), - ShareRequestIncidentM3U: s.incidents.getCallsM3U, - ShareRequestTalkgroups: s.tgs.getTGsShareRoute, - }, - ) - + s.shares = newShareAPI(&baseURL, s.shareHandlers()) return s } diff --git a/pkg/rest/share.go b/pkg/rest/share.go index 647e837..ce1d704 100644 --- a/pkg/rest/share.go +++ b/pkg/rest/share.go @@ -31,6 +31,18 @@ const ( ShareRequestTalkgroups ShareRequestType = "talkgroups" ) +// shareHandlers returns a ShareHandlers map from the api. +func (s *api) shareHandlers() ShareHandlers { + return ShareHandlers{ + ShareRequestCall: s.calls.shareCallRoute, + ShareRequestCallInfo: respondShareHandler(s.calls.getCallInfo), + ShareRequestCallDL: s.calls.shareCallDLRoute, + ShareRequestIncident: respondShareHandler(s.incidents.getIncident), + ShareRequestIncidentM3U: s.incidents.getCallsM3U, + ShareRequestTalkgroups: s.tgs.getTGsShareRoute, + } +} + func (rt ShareRequestType) IsValid() bool { switch rt { case ShareRequestCall, ShareRequestCallInfo, ShareRequestCallDL, ShareRequestIncident, @@ -94,6 +106,7 @@ func respondShareHandler(ie EntityFunc) ShareHandlerFunc { } } + func newShareAPI(baseURL *url.URL, shnd ShareHandlers) *shareAPI { return &shareAPI{ baseURL: baseURL,