package helpers import ( "context" "log" "net" "net/http" "os" models "sarga_updater/trendyol_models" "time" ) func CheckDBExists(endpoint string) bool { const ConnectMaxWaitTime = 30 * time.Second const RequestMaxWaitTime = 60 * time.Second client := http.Client{ Transport: &http.Transport{ DialContext: (&net.Dialer{ Timeout: ConnectMaxWaitTime, }).DialContext, }, } ctx, cancel := context.WithTimeout(context.Background(), RequestMaxWaitTime) defer cancel() req, err := http.NewRequestWithContext(ctx, "GET", endpoint, nil) req.Proto = "HTTP/1.0" if err != nil { log.Println(err.Error()) return false } q := req.URL.Query() req.URL.RawQuery = q.Encode() req.Header.Set("Connection", "close") req.Close = true client.CloseIdleConnections() response, err := client.Do(req) // handle timeout if e, ok := err.(net.Error); ok && e.Timeout() { if response != nil { response.Body.Close() } log.Println(err.Error()) return false } else if err != nil { if response != nil { response.Body.Close() } log.Println(err.Error()) return false } if response != nil { response.Body.Close() } if response.StatusCode == http.StatusOK { return true } else { return false } } func GetCategoryWeight(slug string) string { db, err := CdbServer.Get(os.Getenv("db_ty_categories")) if err != nil { Error("can not get db. Err: " + err.Error()) return "0.5" } doc, err := db.Get(slug, nil) if err != nil { Error("can not get by slug. Err: " + err.Error()) return "0.5" } return doc["weight"].(string) } func IsLCWSizeVariantsAdded(items []models.Variant, keyItem models.Variant) bool { for _, option := range items { if option.ItemNumber == keyItem.ItemNumber { return true } } return false } func IsImageAdded(images []string, image string) bool { for _, img := range images { if img == image { return true } } return false } func IsVariantsAdded(variants []models.Variant, itemNumber int) bool { for _, variant := range variants { if variant.ItemNumber == itemNumber { return true } } return false }