@@ -27,6 +27,10 @@ type PostMessageResponse struct {
27
27
Error string
28
28
}
29
29
30
+ type LogoutResponse struct {
31
+ Status string
32
+ }
33
+
30
34
func login (user , password , server string ) LoginResponse {
31
35
body := strings .NewReader (`user=` + user + `&password=` + password )
32
36
req , err := http .NewRequest ("POST" , server + "/api/v1/login" , body )
@@ -68,6 +72,27 @@ func postMessage(channel, message, userToken, userId, server string) PostMessage
68
72
return postMessageResponse
69
73
}
70
74
75
+ func logout (userToken , userId , server string ) LogoutResponse {
76
+ req , err := http .NewRequest ("POST" , server + "/api/v1/logout" , nil )
77
+ if err != nil {
78
+ log .Fatal (err )
79
+ }
80
+ req .Header .Set ("X-Auth-Token" , userToken )
81
+ req .Header .Set ("X-User-Id" , userId )
82
+ req .Header .Set ("Content-Type" , "application/x-www-form-urlencoded" )
83
+
84
+ resp , err := http .DefaultClient .Do (req )
85
+ if err != nil {
86
+ log .Fatal (err )
87
+ }
88
+ defer resp .Body .Close ()
89
+
90
+ b , _ := ioutil .ReadAll (resp .Body )
91
+ logoutResponse := LogoutResponse {}
92
+ err = json .Unmarshal (b , & logoutResponse )
93
+ return logoutResponse
94
+ }
95
+
71
96
func loadConfigFromEnv (user , password , server , channel * string ) {
72
97
envUser := os .Getenv ("ROCKET_CHAT_USER" )
73
98
if * user == "" && envUser != "" {
@@ -150,6 +175,12 @@ func main() {
150
175
} else {
151
176
log .Fatal (postMessageData .Error )
152
177
}
178
+ logout := logout (loginData .Data .AuthToken , loginData .Data .UserId , * server )
179
+ if logout .Status == "success" {
180
+ log .Println ("log out [ok]" )
181
+ } else {
182
+ log .Println ("log out [failed]" )
183
+ }
153
184
} else {
154
185
log .Println (loginData .Message )
155
186
log .Fatal (loginData .Error )
0 commit comments