@@ -13,11 +13,18 @@ import (
1313 log "github.com/sirupsen/logrus"
1414)
1515
16- // Client stores data about internal-apis call it is about to make.
16+ // Caller interface defines currently supported internal-apis methods.
17+ type Caller interface {
18+ SetServerAddress (string )
19+ GetServerAddress () string
20+ UserMe () (ResponseData , error )
21+ }
22+
23+ // Client stores parameters common for internal-apis calls plus a logger.
1724type Client struct {
18- ServerAddress string
25+ serverAddress string
1926 AuthToken string
20- Logger * log.Logger
27+ logger * log.Logger
2128}
2229
2330// APIResponse reflects internal-apis JSON response format.
@@ -38,16 +45,16 @@ const (
3845
3946// NewClient returns a client instance for internal-apis. It requires authToken to be provided
4047// for authentication.
41- func NewClient (authToken string ) Client {
42- return Client {
43- ServerAddress : defaultAPIHost ,
48+ func NewClient (authToken string ) Caller {
49+ return & Client {
50+ serverAddress : defaultAPIHost ,
4451 AuthToken : authToken ,
45- Logger : log .StandardLogger (),
52+ logger : log .StandardLogger (),
4653 }
4754}
4855
4956func (c Client ) getEndpointURL (object , method string ) string {
50- return fmt .Sprintf ("%s/%s/%s" , c .ServerAddress , object , method )
57+ return fmt .Sprintf ("%s/%s/%s" , c .GetServerAddress () , object , method )
5158}
5259
5360func (c Client ) prepareParams (params map [string ]interface {}) (string , error ) {
@@ -62,9 +69,19 @@ func (c Client) prepareParams(params map[string]interface{}) (string, error) {
6269 return form .Encode (), nil
6370}
6471
72+ // SetServerAddress overrides the default internal-apis server address.
73+ func (c * Client ) SetServerAddress (s string ) {
74+ c .serverAddress = s
75+ }
76+
77+ // GetServerAddress returns currently defined internal-apis server address.
78+ func (c Client ) GetServerAddress () string {
79+ return c .serverAddress
80+ }
81+
6582func (c Client ) doCall (url string , payload string ) ([]byte , error ) {
6683 var body []byte
67- c .Logger .Debugf ("sending payload: %s" , payload )
84+ c .logger .Debugf ("sending payload: %s" , payload )
6885 req , err := http .NewRequest (http .MethodPost , url , bytes .NewBuffer ([]byte (payload )))
6986 if err != nil {
7087 return body , err
0 commit comments