[PD2] Client done except jwt token, login and register functions
This commit is contained in:
parent
c94831d0a2
commit
78031d8e70
16 changed files with 698 additions and 337 deletions
191
Projs/PD2/internal/gateway/forwarder.go
Normal file
191
Projs/PD2/internal/gateway/forwarder.go
Normal file
|
@ -0,0 +1,191 @@
|
|||
package gateway
|
||||
|
||||
import (
|
||||
"PD2/internal/protocol"
|
||||
"bytes"
|
||||
"crypto/tls"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/url"
|
||||
)
|
||||
|
||||
const baseURL = "https://127.0.0.1:8080"
|
||||
|
||||
func getHTTPClient(tlsConfig *tls.Config) *http.Client{
|
||||
transport := &http.Transport{TLSClientConfig: tlsConfig}
|
||||
return &http.Client{Transport: transport}
|
||||
}
|
||||
|
||||
func forwardStoreUserCert(tlsConfig *tls.Config,uid string,storeUserCertificate protocol.StoreUserCert) (int,[]byte,error) {
|
||||
client := getHTTPClient(tlsConfig)
|
||||
|
||||
// Parse the base URL
|
||||
parsedURL, err := url.Parse(baseURL)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error parsing URL: %v", err)
|
||||
}
|
||||
parsedURL.JoinPath("certs")
|
||||
parsedURL.JoinPath(uid)
|
||||
|
||||
jsonData, err := json.Marshal(storeUserCertificate)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error marshaling JSON: %v", err)
|
||||
}
|
||||
|
||||
req, err := http.NewRequest("POST", parsedURL.String(), bytes.NewBuffer(jsonData))
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error creating request: %v", err)
|
||||
}
|
||||
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error making request: %v", err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
// Read response
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error reading response body: %v", err)
|
||||
}
|
||||
|
||||
return resp.StatusCode,body,nil
|
||||
}
|
||||
|
||||
func forwardGetMessage(tlsConfig *tls.Config,uid string,getMsg protocol.GetMsg) (int,[]byte,error) {
|
||||
client := getHTTPClient(tlsConfig)
|
||||
|
||||
// Parse the base URL
|
||||
parsedURL, err := url.Parse(baseURL)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error parsing URL: %v", err)
|
||||
}
|
||||
parsedURL.JoinPath("message")
|
||||
parsedURL.JoinPath(uid)
|
||||
parsedURL.JoinPath(fmt.Sprint(getMsg.Num))
|
||||
|
||||
|
||||
req, err := http.NewRequest("GET", parsedURL.String(), nil)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error creating request: %v", err)
|
||||
}
|
||||
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error making request: %v", err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
// Read response
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error reading response body: %v", err)
|
||||
}
|
||||
|
||||
return resp.StatusCode,body,nil
|
||||
}
|
||||
|
||||
func forwardGetUnreadMsgsInfo(tlsConfig *tls.Config,uid string,getUnreadMsgsInfo protocol.GetUnreadMsgsInfo) (int,[]byte,error) {
|
||||
client := getHTTPClient(tlsConfig)
|
||||
|
||||
// Parse the base URL
|
||||
parsedURL, err := url.Parse(baseURL)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error parsing URL: %v", err)
|
||||
}
|
||||
parsedURL.JoinPath("queue")
|
||||
parsedURL.JoinPath(uid)
|
||||
|
||||
query := parsedURL.Query()
|
||||
query.Set("page", fmt.Sprint(getUnreadMsgsInfo.Page))
|
||||
query.Set("pagesize", fmt.Sprint(getUnreadMsgsInfo.PageSize))
|
||||
parsedURL.RawQuery = query.Encode()
|
||||
|
||||
req, err := http.NewRequest("GET", parsedURL.String(), nil)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error creating request: %v", err)
|
||||
}
|
||||
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error making request: %v", err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
// Read response
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error reading response body: %v", err)
|
||||
}
|
||||
|
||||
return resp.StatusCode,body,nil
|
||||
}
|
||||
|
||||
func forwardGetUserCert(tlsConfig *tls.Config,getUserCert protocol.GetUserCert) (int,[]byte,error) {
|
||||
client := getHTTPClient(tlsConfig)
|
||||
|
||||
// Parse the base URL
|
||||
parsedURL, err := url.Parse(baseURL)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error parsing URL: %v", err)
|
||||
}
|
||||
parsedURL.JoinPath("cert")
|
||||
parsedURL.JoinPath(getUserCert.UID)
|
||||
|
||||
req, err := http.NewRequest("GET", parsedURL.String(), nil)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error creating request: %v", err)
|
||||
}
|
||||
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error making request: %v", err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
// Read response
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error reading response body: %v", err)
|
||||
}
|
||||
|
||||
return resp.StatusCode,body,nil
|
||||
}
|
||||
|
||||
func forwardSendMessage(tlsConfig *tls.Config,uid string,sendMsg protocol.SendMsg) (int,[]byte,error) {
|
||||
client := getHTTPClient(tlsConfig)
|
||||
|
||||
// Parse the base URL
|
||||
parsedURL, err := url.Parse(baseURL)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error parsing URL: %v", err)
|
||||
}
|
||||
parsedURL.JoinPath("message")
|
||||
parsedURL.JoinPath(uid)
|
||||
|
||||
jsonData, err := json.Marshal(sendMsg)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error marshaling JSON: %v", err)
|
||||
}
|
||||
|
||||
req, err := http.NewRequest("POST", parsedURL.String(), bytes.NewBuffer(jsonData))
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error creating request: %v", err)
|
||||
}
|
||||
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error making request: %v", err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
// Read response
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return 0,nil,fmt.Errorf("error reading response body: %v", err)
|
||||
}
|
||||
|
||||
return resp.StatusCode,body,nil
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue