46 r, err := rest.API(req) |
46 r, err := rest.API(req) |
47 if err != nil { |
47 if err != nil { |
48 return fmt.Errorf("status/%s API query: %s", subquery, err.Error()) |
48 return fmt.Errorf("status/%s API query: %s", subquery, err.Error()) |
49 } |
49 } |
50 |
50 |
|
51 // Check for error reply |
|
52 var errorResult Error |
|
53 if err := json.Unmarshal([]byte(r.Body), &errorResult); err == nil { |
|
54 // The empty object is not an error |
|
55 if errorResult.Text != "" { |
|
56 return fmt.Errorf("%s", errorResult.Text) |
|
57 } |
|
58 } |
|
59 |
|
60 // Not an error reply; let's unmarshal the data |
51 err = json.Unmarshal([]byte(r.Body), &data) |
61 err = json.Unmarshal([]byte(r.Body), &data) |
52 if err != nil { |
62 if err != nil { |
53 var errorRes Error |
|
54 err2 := json.Unmarshal([]byte(r.Body), &errorRes) |
|
55 if err2 == nil { |
|
56 return fmt.Errorf("%s", errorRes.Text) |
|
57 } |
|
58 return fmt.Errorf("status/%s API: %s", subquery, err.Error()) |
63 return fmt.Errorf("status/%s API: %s", subquery, err.Error()) |
59 } |
64 } |
60 |
|
61 return nil |
65 return nil |
62 } |
66 } |
63 |
67 |
64 // updateStatusData updates the statuses |
68 // updateStatusData updates the statuses |
65 // The subquery can be empty or "status" (to post a status), "delete" (for |
69 // The subquery can be empty or "status" (to post a status), "delete" (for |
129 } |
133 } |
130 |
134 |
131 // Check for error reply |
135 // Check for error reply |
132 var errorResult Error |
136 var errorResult Error |
133 if err := json.Unmarshal([]byte(r.Body), &errorResult); err == nil { |
137 if err := json.Unmarshal([]byte(r.Body), &errorResult); err == nil { |
134 return fmt.Errorf("%s", errorResult.Text) |
138 // The empty object is not an error |
135 } |
139 if errorResult.Text != "" { |
136 |
140 return fmt.Errorf("%s", errorResult.Text) |
137 // Not an error reply; let's unmarshall the data |
141 } |
|
142 } |
|
143 |
|
144 // Not an error reply; let's unmarshal the data |
138 err = json.Unmarshal([]byte(r.Body), &data) |
145 err = json.Unmarshal([]byte(r.Body), &data) |
139 if err != nil { |
146 if err != nil { |
140 return fmt.Errorf("status/%s API: %s", subquery, err.Error()) |
147 return fmt.Errorf("status/%s API: %s", subquery, err.Error()) |
141 } |
148 } |
142 return nil |
149 return nil |