Files
api-bpjs-surkon/handlers/mikrobiologi/response.go
2025-01-25 11:15:46 +07:00

60 lines
1.2 KiB
Go

package mikrobiologi
import (
"bridging-rssa/models/simrs/mikrobiologi"
"bytes"
"encoding/json"
"fmt"
"io"
"log"
"net/http"
"os"
)
func SendLisMikro(request *mikrobiologi.RequestLISMikro) (*mikrobiologi.Response, error) {
url := os.Getenv("LIS_MIKROBIOLOGI_URL")
log.Println("URL", url)
reqMarshall, err := json.Marshal(request)
if err != nil {
log.Printf("Error json marshal: %v", err)
return nil, err
}
headers := map[string]string{
"Accept": "application/json",
"Content-Type": "Application/x-www-form-urlencoded",
}
log.Println("REQUEST: ", string(reqMarshall))
req, err := http.NewRequest("POST", url, bytes.NewReader(reqMarshall))
if err != nil {
log.Printf("Error creating request: %v", err)
return nil, err
}
for key, value := range headers {
req.Header.Set(key, value)
}
log.Println("REQ", req.Header)
client := http.Client{}
response, err := client.Do(req)
if err != nil {
log.Printf("Error making external API request: %v", err)
return nil, err
}
res, err := io.ReadAll(response.Body)
if err != nil {
fmt.Println(err)
}
var responses *mikrobiologi.Response
log.Println("RESPONSE: ", string(res))
err = json.Unmarshal(res, &responses)
return responses, nil
}