/** * @param $sub_category * * @return BetssonCategoryLeague|null|static * @throws \BetssonSports\Exception */ protected function StoreCategoryLeague($sub_category) { // Load or store category if (!($BetssonCategory = BetssonCategory::findOne(['CategoryID' => intval($sub_category->CategoryID), 'LanguageCode' => $sub_category->LanguageCode]))) { $BetssonCategory = new BetssonCategory(); $BetssonCategory->CategoryID = intval($sub_category->CategoryID); $BetssonCategory->LanguageCode = $sub_category->LanguageCode; } // TODO: temporary fix to prevent errors when Betsson provides no category name $BetssonCategory->CategoryName = $sub_category->CategoryName ? $sub_category->CategoryName : 'Not provided'; $BetssonCategory->CacheDate = $sub_category->CacheDate; $BetssonCategory->CacheExpireDate = $sub_category->CacheExpireDate; $BetssonCategory->ErrorMessage = $sub_category->ErrorMessage; if (!$this->storeDataRecord($BetssonCategory)) { return false; } // Load or store category league if (!($BetssonCategoryLeague = BetssonCategoryLeague::findOne(['LeagueID' => intval($sub_category->SubCategoryID), 'LanguageCode' => $sub_category->LanguageCode]))) { $BetssonCategoryLeague = new BetssonCategoryLeague(); $BetssonCategoryLeague->LeagueID = intval($sub_category->SubCategoryID); $BetssonCategoryLeague->LanguageCode = $sub_category->LanguageCode; } $BetssonCategoryLeague->CategoryID = intval($sub_category->CategoryID); $BetssonCategoryLeague->LeagueName = $sub_category->SubCategoryName; $BetssonCategoryLeague->LeagueURL = $sub_category->SubCategoryURL; $BetssonCategoryLeague->CacheDate = gmdate("Y-m-d H:i:s", strtotime($sub_category->CacheDate)); $BetssonCategoryLeague->CacheExpireDate = gmdate("Y-m-d H:i:s", strtotime($sub_category->CacheExpireDate)); $BetssonCategoryLeague->ErrorMessage = $sub_category->ErrorMessage; if (!$this->storeDataRecord($BetssonCategoryLeague)) { return false; } return true; }