· 5 years ago · Mar 05, 2021, 04:00 AM
1func GetClinicsByKeyPattern(re *regexp.Regexp) ([]Clinic, error) {
2 if len(config.ApiInternalUrl) == 0 {
3 return nil, fmt.Errorf("Internal Get API url (api_internal_url) not configured!")
4 }
5
6 resp, err := http.PostForm(config.ApiInternalUrl, url.Values{"secret": {config.ApiSecret}})
7 if err != nil {
8 return nil, err
9 }
10
11 if resp != nil && resp.Body != nil {
12 defer resp.Body.Close()
13 }
14
15 jsonBytes, err := ioutil.ReadAll(resp.Body)
16 if err != nil {
17 return nil, err
18 }
19
20 apiResp := ClinicsAPIResp{}
21 err = json.Unmarshal(jsonBytes, &apiResp)
22 if err != nil {
23 return nil, err
24 }
25
26 Log.Debugf("Fetched %d total clinics", len(apiResp.Clinics))
27
28 filteredClinics := make([]Clinic, 0)
29
30 for _, clinic := range apiResp.Clinics {
31 if strings.Contains(clinic.ApiKey, "walgreens") {
32 Log.Debugf("API KEY: %s", clinic.ApiKey)
33 }
34 if re.MatchString(clinic.ApiKey) {
35 filteredClinics = append(filteredClinics, clinic)
36 }
37 }
38
39 Log.Debugf("Pattern matched %d clinics", len(filteredClinics))
40
41 return filteredClinics, nil
42}
43