From f4adf2390fd556535e1f75bee8c9a513a0c44dc1 Mon Sep 17 00:00:00 2001 From: Benjamin Takats Date: Mon, 16 Jan 2023 18:57:40 +0100 Subject: [PATCH] sync github --- .../Commands/Database/SyncGithubMeetups.php | 45 +++++++++++++++++++ app/Models/Meetup.php | 1 + ...57_add_github_data_field_meetups_table.php | 28 ++++++++++++ routes/api.php | 3 ++ 4 files changed, 77 insertions(+) create mode 100644 app/Console/Commands/Database/SyncGithubMeetups.php create mode 100644 database/migrations/2023_01_16_175457_add_github_data_field_meetups_table.php diff --git a/app/Console/Commands/Database/SyncGithubMeetups.php b/app/Console/Commands/Database/SyncGithubMeetups.php new file mode 100644 index 00000000..d2cab5ed --- /dev/null +++ b/app/Console/Commands/Database/SyncGithubMeetups.php @@ -0,0 +1,45 @@ +json(); + + foreach ($meetups as $meetup) { + $dbMeetup = Meetup::where('name', $meetup['name']) + ->first(); + if ($dbMeetup) { + $dbMeetup->update([ + 'github_data' => $meetup, + ]); + } + } + + return Command::SUCCESS; + } +} diff --git a/app/Models/Meetup.php b/app/Models/Meetup.php index c5249bcc..1e3206e6 100644 --- a/app/Models/Meetup.php +++ b/app/Models/Meetup.php @@ -31,6 +31,7 @@ class Meetup extends Model implements HasMedia protected $casts = [ 'id' => 'integer', 'city_id' => 'integer', + 'github_data' => 'json', ]; protected static function booted() diff --git a/database/migrations/2023_01_16_175457_add_github_data_field_meetups_table.php b/database/migrations/2023_01_16_175457_add_github_data_field_meetups_table.php new file mode 100644 index 00000000..13db8e6d --- /dev/null +++ b/database/migrations/2023_01_16_175457_add_github_data_field_meetups_table.php @@ -0,0 +1,28 @@ +json('github_data') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + * @return void + */ + public function down() + { + // + } +}; diff --git a/routes/api.php b/routes/api.php index 547bb271..4279b087 100644 --- a/routes/api.php +++ b/routes/api.php @@ -41,7 +41,10 @@ Route::middleware([]) ->map(fn($meetup) => [ 'name' => $meetup->name, 'url' => $meetup->telegram_link ?? $meetup->webpage ?? $meetup->twitter_username, + 'top' => $meetup->github_data['top'] ?? null, + 'left' => $meetup->github_data['top'] ?? null, 'country' => str($meetup->city->country->code)->upper(), + 'state' => $meetup->github_data['state'] ?? null, 'city' => $meetup->city->name, 'longitude' => $meetup->city->longitude, 'latitude' => $meetup->city->latitude,