Skip to content

Commit 080c9c7

Browse files
committed
Add logout method after login
1 parent 45564ec commit 080c9c7

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

main.go

+31
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ type PostMessageResponse struct {
2727
Error string
2828
}
2929

30+
type LogoutResponse struct {
31+
Status string
32+
}
33+
3034
func login(user, password, server string) LoginResponse {
3135
body := strings.NewReader(`user=` + user + `&password=` + password)
3236
req, err := http.NewRequest("POST", server+"/api/v1/login", body)
@@ -68,6 +72,27 @@ func postMessage(channel, message, userToken, userId, server string) PostMessage
6872
return postMessageResponse
6973
}
7074

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+
7196
func loadConfigFromEnv(user, password, server, channel *string) {
7297
envUser := os.Getenv("ROCKET_CHAT_USER")
7398
if *user == "" && envUser != "" {
@@ -150,6 +175,12 @@ func main() {
150175
} else {
151176
log.Fatal(postMessageData.Error)
152177
}
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+
}
153184
} else {
154185
log.Println(loginData.Message)
155186
log.Fatal(loginData.Error)

0 commit comments

Comments
 (0)