summaryrefslogtreecommitdiff
path: root/http-client/client.go
diff options
context:
space:
mode:
Diffstat (limited to 'http-client/client.go')
-rw-r--r--http-client/client.go40
1 files changed, 21 insertions, 19 deletions
diff --git a/http-client/client.go b/http-client/client.go
index 346a654..211c299 100644
--- a/http-client/client.go
+++ b/http-client/client.go
@@ -2,7 +2,6 @@ package main
import (
"bytes"
- "crypto/rsa"
"encoding/json"
"errors"
"fmt"
@@ -14,12 +13,11 @@ import (
)
const (
- URL = "http://localhost:8080/api"
- Register = "register"
- SendMessage = "sendMessage"
- PollMessages = "pollMessages"
- GetUserKey = "getUserKey"
- TryAuth = "tryAuth"
+ Register = "/api/register"
+ SendMessage = "/api/sendMessage"
+ PollMessages = "/api/pollMessages"
+ GetUserKey = "/api/getUserKey"
+ TryAuth = "/api/tryAuth"
)
var storage struct {
@@ -48,29 +46,29 @@ func (msg *Message) toString() string {
return fmt.Sprintf("%s: %s", msg.User, msg.Data)
}
-func makeRequest(request Request, apiMethod string, key *rsa.PublicKey) (*http.Response, error) {
- signedRequest, err := signRequest(request, key)
+func makeRequest(request Request, apiMethod string, user UserData) (*http.Response, error) {
+ signedRequest, err := signRequest(request, user.ParsedUserKey)
if err != nil {
return nil, err
}
reader := bytes.NewReader([]byte(signedRequest))
- return http.Post(URL+"/"+apiMethod, "application/json", reader)
+ return http.Post(user.ServerUrl+apiMethod, "application/json", reader)
}
-func sendMessage(user UserData, message string, key *rsa.PublicKey) {
+func sendMessage(user UserData, message string) {
// TODO(andrew): Добавить отображение ошибки в интерфейс
_, _ = makeRequest(Request{
User: user.Username,
Data: message,
- }, SendMessage, key)
+ }, SendMessage, user)
}
-func register(user UserData, serverKey string, key *rsa.PublicKey) (Response, error) {
+func register(user UserData, serverKey string) (Response, error) {
var resp Response
httpResp, err := makeRequest(Request{
User: user.Username,
Data: serverKey,
- }, Register, key)
+ }, Register, user)
if err != nil {
return resp, err
}
@@ -85,12 +83,12 @@ func register(user UserData, serverKey string, key *rsa.PublicKey) (Response, er
}
}
-func tryAuth(user UserData, key *rsa.PublicKey) (bool, error) {
+func tryAuth(user UserData) (bool, error) {
var resp Response
httpResp, err := makeRequest(Request{
User: user.Username,
Data: "auth",
- }, TryAuth, key)
+ }, TryAuth, user)
if err != nil {
return false, err
}
@@ -105,14 +103,18 @@ func tryAuth(user UserData, key *rsa.PublicKey) (bool, error) {
}
}
+func pingServer(user UserData) error {
+ _, err := http.Get(user.ServerUrl)
+ return err
+}
+
func runClient(user UserData) {
- lastPoll := time.Now().UnixNano()
- key, _ := parseKey(user.UserKey)
+ var lastPoll int64 = 0
for {
httpResp, _ := makeRequest(Request{
User: user.Username,
Data: fmt.Sprint(lastPoll),
- }, PollMessages, key)
+ }, PollMessages, user)
lastPoll = time.Now().UnixNano()
if httpResp.StatusCode == http.StatusOK {