update structure
This commit is contained in:
122
handlers/bpjs/vClaim/VclaimBridge.go
Normal file
122
handlers/bpjs/vClaim/VclaimBridge.go
Normal file
@@ -0,0 +1,122 @@
|
||||
package Vclaim
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/mashingan/smapping"
|
||||
)
|
||||
|
||||
type Respon_MentahDTO struct {
|
||||
MetaData struct {
|
||||
Code string `json:"code"`
|
||||
Message string `json:"message"`
|
||||
} `json:"metaData"`
|
||||
Response string `json:"response"`
|
||||
}
|
||||
|
||||
type Respon_DTO struct {
|
||||
MetaData struct {
|
||||
Code string `json:"code"`
|
||||
Message string `json:"message"`
|
||||
} `json:"metaData"`
|
||||
Response interface{} `json:"response"`
|
||||
}
|
||||
|
||||
func GetRequest(endpoint string, cfg interface{}) interface{} {
|
||||
|
||||
conf := ConfigBpjs{}
|
||||
|
||||
err := smapping.FillStruct(&conf, smapping.MapFields(&cfg))
|
||||
if err != nil {
|
||||
log.Fatalf("Failed map %v: ", err)
|
||||
}
|
||||
|
||||
cons_id, Secret_key, User_key, tstamp, X_signature := SetHeader(conf)
|
||||
|
||||
req, _ := http.NewRequest("GET", endpoint, nil)
|
||||
|
||||
req.Header.Add("Content-Type", "Application/x-www-form-urlencoded")
|
||||
req.Header.Add("X-cons-id", cons_id)
|
||||
req.Header.Add("X-timestamp", tstamp)
|
||||
req.Header.Add("X-signature", X_signature)
|
||||
req.Header.Add("user_key", User_key)
|
||||
|
||||
res, err := http.DefaultClient.Do(req)
|
||||
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
||||
body, err := io.ReadAll(res.Body)
|
||||
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
||||
var resp_mentah Respon_MentahDTO
|
||||
var resp Respon_DTO
|
||||
json.Unmarshal([]byte(body), &resp_mentah)
|
||||
|
||||
resp_decrypt, _ := ResponseVclaim(string(resp_mentah.Response), string(cons_id+Secret_key+tstamp))
|
||||
resp.MetaData = resp_mentah.MetaData
|
||||
json.Unmarshal([]byte(resp_decrypt), &resp.Response)
|
||||
|
||||
return &resp
|
||||
}
|
||||
|
||||
func PostRequest(endpoint string, cfg interface{}, data interface{}) interface{} {
|
||||
|
||||
conf := ConfigBpjs{}
|
||||
|
||||
err := smapping.FillStruct(&conf, smapping.MapFields(&cfg))
|
||||
if err != nil {
|
||||
log.Fatalf("Failed map %v: ", err)
|
||||
}
|
||||
|
||||
cons_id, Secret_key, User_key, tstamp, X_signature := SetHeader(conf)
|
||||
|
||||
var buf bytes.Buffer
|
||||
|
||||
err = json.NewEncoder(&buf).Encode(data)
|
||||
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
req, _ := http.NewRequest("POST", endpoint, &buf)
|
||||
|
||||
req.Header.Add("Content-Type", "Application/x-www-form-urlencoded")
|
||||
req.Header.Add("X-cons-id", cons_id)
|
||||
req.Header.Add("X-timestamp", tstamp)
|
||||
req.Header.Add("X-signature", X_signature)
|
||||
req.Header.Add("user_key", User_key)
|
||||
|
||||
res, err := http.DefaultClient.Do(req)
|
||||
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
||||
body, err := ioutil.ReadAll(res.Body)
|
||||
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
fmt.Println(string(body))
|
||||
var resp_mentah Respon_MentahDTO
|
||||
var resp Respon_DTO
|
||||
json.Unmarshal([]byte(body), &resp_mentah)
|
||||
|
||||
resp_decrypt, _ := ResponseVclaim(string(resp_mentah.Response), string(cons_id+Secret_key+tstamp))
|
||||
resp.MetaData = resp_mentah.MetaData
|
||||
json.Unmarshal([]byte(resp_decrypt), &resp.Response)
|
||||
|
||||
return &resp
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user