]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/commitdiff
Update github.com/DreamItGetIT/statuscake to PR-28
authorMat Schaffer <mat@schaffer.me>
Fri, 27 Jul 2018 08:15:39 +0000 (17:15 +0900)
committerMat Schaffer <mat@schaffer.me>
Fri, 27 Jul 2018 08:15:39 +0000 (17:15 +0900)
Will rebase this commit once the PR is merged

vendor/github.com/DreamItGetIT/statuscake/errors.go
vendor/github.com/DreamItGetIT/statuscake/responses.go
vendor/github.com/DreamItGetIT/statuscake/tests.go
vendor/vendor.json

index 4c519910469a99536bee43ac09326749eb1ab225..c3366473e6082da9e45dfd7f1c6088dd3a8d9890 100644 (file)
@@ -34,12 +34,15 @@ func (e ValidationError) Error() string {
 }
 
 type updateError struct {
-       Issues interface{}
+       Issues  interface{}
+       Message string
 }
 
 func (e *updateError) Error() string {
        var messages []string
 
+       messages = append(messages, e.Message)
+
        if issues, ok := e.Issues.(map[string]interface{}); ok {
                for k, v := range issues {
                        m := fmt.Sprintf("%s %s", k, v)
@@ -50,6 +53,9 @@ func (e *updateError) Error() string {
                        m := fmt.Sprint(v)
                        messages = append(messages, m)
                }
+       } else if issue, ok := e.Issues.(interface{}); ok {
+               m := fmt.Sprint(issue)
+               messages = append(messages, m)
        }
 
        return strings.Join(messages, ", ")
index 3cbf36daa5c45754b1e8091eff3f1e76e78d6f44..e8d4af4a476dab33a68528da936040ddccda1ad8 100644 (file)
@@ -1,6 +1,7 @@
 package statuscake
 
 import (
+       "strconv"
        "strings"
 )
 
@@ -21,43 +22,55 @@ type deleteResponse struct {
        Error   string `json:"Error"`
 }
 
+type contactGroupDetailResponse struct {
+       ID    int    `json:"ID"`
+       Name  string `json:"Name"`
+       Email string `json:"Email"`
+}
+
 type detailResponse struct {
-       Method          string   `json:"Method"`
-       TestID          int      `json:"TestID"`
-       TestType        string   `json:"TestType"`
-       Paused          bool     `json:"Paused"`
-       WebsiteName     string   `json:"WebsiteName"`
-       URI             string   `json:"URI"`
-       ContactID       int      `json:"ContactID"`
-       Status          string   `json:"Status"`
-       Uptime          float64  `json:"Uptime"`
-       CustomHeader    string   `json:"CustomHeader"`
-       UserAgent       string   `json:"UserAgent"`
-       CheckRate       int      `json:"CheckRate"`
-       Timeout         int      `json:"Timeout"`
-       LogoImage       string   `json:"LogoImage"`
-       Confirmation    int      `json:"Confirmation,string"`
-       WebsiteHost     string   `json:"WebsiteHost"`
-       NodeLocations   []string `json:"NodeLocations"`
-       FindString      string   `json:"FindString"`
-       DoNotFind       bool     `json:"DoNotFind"`
-       LastTested      string   `json:"LastTested"`
-       NextLocation    string   `json:"NextLocation"`
-       Port            int      `json:"Port"`
-       Processing      bool     `json:"Processing"`
-       ProcessingState string   `json:"ProcessingState"`
-       ProcessingOn    string   `json:"ProcessingOn"`
-       DownTimes       int      `json:"DownTimes,string"`
-       Sensitive       bool     `json:"Sensitive"`
-       TriggerRate     int      `json:"TriggerRate,string"`
-       UseJar          int      `json:"UseJar"`
-       PostRaw         string   `json:"PostRaw"`
-       FinalEndpoint   string   `json:"FinalEndpoint"`
-       FollowRedirect  bool     `json:"FollowRedirect"`
-       StatusCodes     []string `json:"StatusCodes"`
+       Method          string                       `json:"Method"`
+       TestID          int                          `json:"TestID"`
+       TestType        string                       `json:"TestType"`
+       Paused          bool                         `json:"Paused"`
+       WebsiteName     string                       `json:"WebsiteName"`
+       URI             string                       `json:"URI"`
+       ContactID       int                          `json:"ContactID"`
+       ContactGroups   []contactGroupDetailResponse `json:"ContactGroups"`
+       Status          string                       `json:"Status"`
+       Uptime          float64                      `json:"Uptime"`
+       CustomHeader    string                       `json:"CustomHeader"`
+       UserAgent       string                       `json:"UserAgent"`
+       CheckRate       int                          `json:"CheckRate"`
+       Timeout         int                          `json:"Timeout"`
+       LogoImage       string                       `json:"LogoImage"`
+       Confirmation    int                          `json:"Confirmation,string"`
+       WebsiteHost     string                       `json:"WebsiteHost"`
+       NodeLocations   []string                     `json:"NodeLocations"`
+       FindString      string                       `json:"FindString"`
+       DoNotFind       bool                         `json:"DoNotFind"`
+       LastTested      string                       `json:"LastTested"`
+       NextLocation    string                       `json:"NextLocation"`
+       Port            int                          `json:"Port"`
+       Processing      bool                         `json:"Processing"`
+       ProcessingState string                       `json:"ProcessingState"`
+       ProcessingOn    string                       `json:"ProcessingOn"`
+       DownTimes       int                          `json:"DownTimes,string"`
+       Sensitive       bool                         `json:"Sensitive"`
+       TriggerRate     int                          `json:"TriggerRate,string"`
+       UseJar          int                          `json:"UseJar"`
+       PostRaw         string                       `json:"PostRaw"`
+       FinalEndpoint   string                       `json:"FinalEndpoint"`
+       FollowRedirect  bool                         `json:"FollowRedirect"`
+       StatusCodes     []string                     `json:"StatusCodes"`
 }
 
 func (d *detailResponse) test() *Test {
+       contactGroupIds := make([]string, len(d.ContactGroups))
+       for i, v := range d.ContactGroups {
+               contactGroupIds[i] = strconv.Itoa(v.ID)
+       }
+
        return &Test{
                TestID:         d.TestID,
                TestType:       d.TestType,
@@ -67,6 +80,7 @@ func (d *detailResponse) test() *Test {
                CustomHeader:   d.CustomHeader,
                UserAgent:      d.UserAgent,
                ContactID:      d.ContactID,
+               ContactGroup:   contactGroupIds,
                Status:         d.Status,
                Uptime:         d.Uptime,
                CheckRate:      d.CheckRate,
index a41b0bd78576b326983d1fdda3e1d0c13eccfa96..b003d4cb1478f0736e4bbf7f9726f9fb9cb5cff3 100644 (file)
@@ -12,7 +12,7 @@ const queryStringTag = "querystring"
 
 // Test represents a statuscake Test
 type Test struct {
-       // ThiTestID is an int, use this to get more details about this test. If not provided will insert a new check, else will update
+       // TestID is an int, use this to get more details about this test. If not provided will insert a new check, else will update
        TestID int `json:"TestID" querystring:"TestID" querystringoptions:"omitempty"`
 
        // Sent tfalse To Unpause and true To Pause.
@@ -33,8 +33,11 @@ type Test struct {
        // A Port to use on TCP Tests
        Port int `json:"Port" querystring:"Port"`
 
-       // Contact group ID - will return int of contact group used else 0
-       ContactID int `json:"ContactID" querystring:"ContactGroup"`
+       // Contact group ID - deprecated in favor of ContactGroup but still provided in the API detail response
+       ContactID int `json:"ContactID"`
+
+       // Contact group IDs - will return list of ints or empty if not provided
+       ContactGroup []string `json:"ContactGroup" querystring:"ContactGroup"`
 
        // Current status at last test
        Status string `json:"Status"`
@@ -93,7 +96,7 @@ type Test struct {
        TriggerRate int `json:"TriggerRate" querystring:"TriggerRate"`
 
        // Tags should be seperated by a comma - no spacing between tags (this,is,a set,of,tags)
-       TestTags string `json:"TestTags" querystring:"TestTags"`
+       TestTags []string `json:"TestTags" querystring:"TestTags"`
 
        // Comma Seperated List of StatusCodes to Trigger Error on (on Update will replace, so send full list each time)
        StatusCodes string `json:"StatusCodes" querystring:"StatusCodes"`
@@ -283,7 +286,7 @@ func (tt *tests) Update(t *Test) (*Test, error) {
        }
 
        if !ur.Success {
-               return nil, &updateError{Issues: ur.Issues}
+               return nil, &updateError{Issues: ur.Issues, Message: ur.Message}
        }
 
        t2 := *t
index 61dd8f327384c12a9795c5c0892c0c842a3cd177..8342c9bcf75dd67b39592733a520b7d78091f4dc 100644 (file)
@@ -3,10 +3,10 @@
        "ignore": "appengine test github.com/hashicorp/nomad/ github.com/hashicorp/terraform/backend",
        "package": [
                {
-                       "checksumSHA1": "6Fo7YzTT+MDviHOsqg6dNw8WrV4=",
+                       "checksumSHA1": "AGuqyTuduSvlOIZ9z0eduvFx3qk=",
                        "path": "github.com/DreamItGetIT/statuscake",
-                       "revision": "f69198f958d7326f3c110dd9be1c21abbd8a87a7",
-                       "revisionTime": "2018-01-30T22:14:43Z"
+                       "revision": "a89107babf68135a67bea923d24e0f4d77b5b3a4",
+                       "revisionTime": "2018-07-27T06:02:48Z"
                },
                {
                        "checksumSHA1": "FIL83loX9V9APvGQIjJpbxq53F0=",