2 | 2 |
import (
|
3 | 3 |
"errors"
|
4 | 4 |
"net/url"
|
|
5 |
)
|
|
6 |
|
|
7 |
const (
|
|
8 |
DEFAULT_USER_PHOTO_CROP_X = -1
|
|
9 |
DEFAULT_USER_PHOTO_CROP_Y = -1
|
|
10 |
DEFAULT_USER_PHOTO_CROP_W = -1
|
5 | 11 |
)
|
6 | 12 |
|
7 | 13 |
// UserProfile contains all the information details of a given user
|
|
96 | 102 |
SlackResponse
|
97 | 103 |
}
|
98 | 104 |
|
|
105 |
type UserSetPhotoParams struct {
|
|
106 |
CropX int
|
|
107 |
CropY int
|
|
108 |
CropW int
|
|
109 |
}
|
|
110 |
|
|
111 |
func NewUserSetPhotoParams() UserSetPhotoParams {
|
|
112 |
return UserSetPhotoParams{
|
|
113 |
CropX: DEFAULT_USER_PHOTO_CROP_X,
|
|
114 |
CropY: DEFAULT_USER_PHOTO_CROP_Y,
|
|
115 |
CropW: DEFAULT_USER_PHOTO_CROP_W,
|
|
116 |
}
|
|
117 |
}
|
|
118 |
|
99 | 119 |
func userRequest(path string, values url.Values, debug bool) (*userResponseFull, error) {
|
100 | 120 |
response := &userResponseFull{}
|
101 | 121 |
err := post(path, values, response, debug)
|
|
188 | 208 |
}
|
189 | 209 |
return response, nil
|
190 | 210 |
}
|
|
211 |
|
|
212 |
// SetUserPhoto changes the currently authenticated user's profile image
|
|
213 |
func (api *Client) SetUserPhoto(image string, params UserSetPhotoParams) error {
|
|
214 |
response := &SlackResponse{}
|
|
215 |
values := url.Values{
|
|
216 |
"token": {api.config.token},
|
|
217 |
}
|
|
218 |
if params.CropX != DEFAULT_USER_PHOTO_CROP_X {
|
|
219 |
values.Add("crop_x", string(params.CropX))
|
|
220 |
}
|
|
221 |
if params.CropY != DEFAULT_USER_PHOTO_CROP_Y {
|
|
222 |
values.Add("crop_y", string(params.CropY))
|
|
223 |
}
|
|
224 |
if params.CropW != DEFAULT_USER_PHOTO_CROP_W {
|
|
225 |
values.Add("crop_w", string(params.CropW))
|
|
226 |
}
|
|
227 |
err := postWithMultipartResponse("users.setPhoto", image, "image", values, response, api.debug)
|
|
228 |
if err != nil {
|
|
229 |
return err
|
|
230 |
}
|
|
231 |
if !response.Ok {
|
|
232 |
return errors.New(response.Error)
|
|
233 |
}
|
|
234 |
return nil
|
|
235 |
}
|
|
236 |
|
|
237 |
// DeleteUserPhoto deletes the current authenticated user's profile image
|
|
238 |
func (api *Client) DeleteUserPhoto() error {
|
|
239 |
response := &SlackResponse{}
|
|
240 |
values := url.Values{
|
|
241 |
"token": {api.config.token},
|
|
242 |
}
|
|
243 |
err := post("users.deletePhoto", values, response, api.debug)
|
|
244 |
if err != nil {
|
|
245 |
return err
|
|
246 |
}
|
|
247 |
if !response.Ok {
|
|
248 |
return errors.New(response.Error)
|
|
249 |
}
|
|
250 |
return nil
|
|
251 |
}
|