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 }