/** * @param $reviewData * @return \App\Review */ public static function normalize(&$reviewData) { $review = ReviewModel::firstOrNew(['external_id' => $reviewData['id']]); $review->external_id = $reviewData['id']; $review->text = $reviewData['text']; $review->date = Carbon::createFromTimestamp($reviewData['date']); $profileData = $reviewData['profile']; $profile = ProfileModel::firstOrNew(['external_id' => $reviewData['profile']['uid']]); $profile->first_name = $profileData['first_name']; $profile->last_name = $profileData['last_name']; $profile->domain = $profileData['domain']; if (isset($profileData['photo_200_orig'])) { $profile->photo = $profileData['photo_200_orig']; } if (isset($profileData['photo_400_orig'])) { $profile->photo_big = $profileData['photo_400_orig']; } $profile->save(); $profile->reviews()->save($review); return $review; }