diff --git a/app/Services/Contact/Avatar/GetAdorableAvatarURL.php b/app/Services/Contact/Avatar/GetAdorableAvatarURL.php index 2c337331a9c..47f8e07a0f3 100644 --- a/app/Services/Contact/Avatar/GetAdorableAvatarURL.php +++ b/app/Services/Contact/Avatar/GetAdorableAvatarURL.php @@ -2,12 +2,11 @@ namespace App\Services\Contact\Avatar; +use Illuminate\Support\Str; use App\Services\BaseService; class GetAdorableAvatarURL extends BaseService { - private const ADORABLE_API = 'https://api.hello-avatar.com/adorables/'; - /** * Get the validation rules that apply to the service. * @@ -34,7 +33,7 @@ public function execute(array $data) $size = $this->size($data); - return self::ADORABLE_API.$size.'/'.$data['uuid'].'.png'; + return Str::finish(config('monica.adorable_api'), '/').$size.'/'.$data['uuid'].'.png'; } /** diff --git a/config/monica.php b/config/monica.php index 4e9b358cc78..554bb09577b 100644 --- a/config/monica.php +++ b/config/monica.php @@ -263,4 +263,17 @@ | The default avatar size. */ 'avatar_size' => 200, + + /* + |-------------------------------------------------------------------------- + | Default adorable api url + |-------------------------------------------------------------------------- + | + | The default adorable api url. + | + | You can host your own version, see https://github.com/itsthatguy/avatars-api-middleware + | or https://hub.docker.com/r/aldrio/adorable-avatars. + */ + 'adorable_api' => env('ADORABLE_API', 'https://api.hello-avatar.com/adorables/'), + ]; diff --git a/database/migrations/2021_01_10_235600_update_adorable_api.php b/database/migrations/2021_01_10_235600_update_adorable_api.php index 9bdac3ae82a..09869795dc0 100644 --- a/database/migrations/2021_01_10_235600_update_adorable_api.php +++ b/database/migrations/2021_01_10_235600_update_adorable_api.php @@ -1,5 +1,6 @@ where('avatar_adorable_url', 'like', '%api.adorable.io%') - ->chunk(1000, function ($contacts) { + ->chunk(1000, function ($contacts) use ($adorable_api) { foreach ($contacts as $contact) { - $contact->avatar_adorable_url = str_replace('api.adorable.io/avatars', 'api.hello-avatar.com/adorables', $contact->avatar_adorable_url); - $contact->save(); + $contact->update([ + 'avatar_adorable_url' => Str::of($contact->avatar_adorable_url)->replace('https://api.adorable.io/avatars/', $adorable_api), + ]); } }); }