package jadwal_dokter import ( "bridging-rssa/docs" "bridging-rssa/models/bpjs/jadwal_dokter" "bridging-rssa/models/config" "encoding/json" "fmt" "io" "log" "net/http" ) func JadwalDokterGetResponse(url string, header *config.Header, headers map[string]string) (*jadwal_dokter.JadwalDokter, error) { log.Println("URL", url) req, err := http.NewRequest("GET", url, nil) if err != nil { log.Printf("Error creating request: %v", 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) } log.Println("RESPONSE: ", response) key := header.ConsID + header.SecretKey + header.TimeStamp res, err := io.ReadAll(response.Body) if err != nil { fmt.Println(err) } var jadwalDokterRaw jadwal_dokter.JadwalDokterRaw err = json.Unmarshal([]byte(res), &jadwalDokterRaw) if err != nil { log.Printf("Error Unmarshaling: %v", err) } responses := &jadwal_dokter.JadwalDokter{} if jadwalDokterRaw.MetaData.Code != 200 { responses.MetaData.Code = jadwalDokterRaw.MetaData.Code responses.MetaData.Message = jadwalDokterRaw.MetaData.Message log.Println("No Data Found") return responses, nil } dataResp, err := docs.StringDecrypt(key, jadwalDokterRaw.Response) if err != nil { log.Printf("Error Decrypt: %v", err) } var listDokter []*jadwal_dokter.ListDokter log.Println("dataresp: ", dataResp) err = json.Unmarshal([]byte(dataResp), &listDokter) if err != nil { log.Printf("Error Decode: %v", err) } log.Println("res: ", &listDokter) responses = &jadwal_dokter.JadwalDokter{ Response: listDokter, MetaData: jadwalDokterRaw.MetaData, } return responses, nil } func JadwalDokterGetResponseApi(url string, header *config.Header, kdPoly string, tanggal string, headers map[string]string) ([]*jadwal_dokter.ListDokter, error) { param := "/jadwaldokter/kodepoli/" + kdPoly + "/tanggal/" + tanggal url += param log.Println("URL", url) req, err := http.NewRequest("GET", url, nil) if err != nil { log.Printf("Error creating request: %v", 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) } log.Println("RESPONSE: ", response) key := header.ConsID + header.SecretKey + header.TimeStamp res, err := io.ReadAll(response.Body) if err != nil { fmt.Println(err) } var jadwalDokterRaw jadwal_dokter.JadwalDokterRaw err = json.Unmarshal([]byte(res), &jadwalDokterRaw) if err != nil { log.Printf("Error Unmarshaling: %v", err) } if jadwalDokterRaw.MetaData.Code == 201 { log.Println("No Data Found") return nil, nil } dataResp, err := docs.StringDecrypt(key, jadwalDokterRaw.Response) if err != nil { log.Printf("Error Decrypt: %v", err) } var listDokter []*jadwal_dokter.ListDokter log.Println("dataresp: ", dataResp) err = json.Unmarshal([]byte(dataResp), &listDokter) if err != nil { log.Printf("Error Decode: %v", err) } log.Println("res: ", &listDokter) return listDokter, nil }