From 938a4d695737865709dcc3c4dddd21a6a5f82bbe Mon Sep 17 00:00:00 2001 From: eai04191 Date: Tue, 15 Jan 2019 15:31:15 +0900 Subject: [PATCH] =?UTF-8?q?metadata=E3=83=86=E3=83=BC=E3=83=96=E3=83=AB?= =?UTF-8?q?=E3=81=ABexpires=5Fat=E3=82=AB=E3=83=A9=E3=83=A0=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit メタデータの有効期限が現在より過去の場合、メタデータを再取得する --- app/Metadata.php | 4 +-- ...9_01_15_143800_add_expires_on_metadata.php | 32 +++++++++++++++++++ routes/api.php | 5 +-- 3 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 database/migrations/2019_01_15_143800_add_expires_on_metadata.php diff --git a/app/Metadata.php b/app/Metadata.php index 98badb6..ef80075 100644 --- a/app/Metadata.php +++ b/app/Metadata.php @@ -10,6 +10,6 @@ class Metadata extends Model protected $primaryKey = 'url'; protected $keyType = 'string'; - protected $fillable = ['url', 'title', 'description', 'image']; - protected $visible = ['url', 'title', 'description', 'image']; + protected $fillable = ['url', 'title', 'description', 'image', 'expires_at']; + protected $visible = ['url', 'title', 'description', 'image', 'expires_at']; } diff --git a/database/migrations/2019_01_15_143800_add_expires_on_metadata.php b/database/migrations/2019_01_15_143800_add_expires_on_metadata.php new file mode 100644 index 0000000..46891e1 --- /dev/null +++ b/database/migrations/2019_01_15_143800_add_expires_on_metadata.php @@ -0,0 +1,32 @@ +timestamp('expires_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('metadata', function (Blueprint $table) { + $table->removeColumn('expires_at'); + }); + } +} diff --git a/routes/api.php b/routes/api.php index 73e72cd..3f2b134 100644 --- a/routes/api.php +++ b/routes/api.php @@ -26,13 +26,14 @@ Route::get('/checkin/card', function (Request $request, MetadataResolver $resolv $url = $formatter->normalizeUrl($request->input('url')); $metadata = App\Metadata::find($url); - if ($metadata == null) { + if ($metadata == null || new DateTime($metadata->expires_at) < new DateTime("now")) { $resolved = $resolver->resolve($url); $metadata = App\Metadata::create([ 'url' => $url, 'title' => $resolved->title, 'description' => $resolved->description, - 'image' => $resolved->image + 'image' => $resolved->image, + 'expires_at' => $resolved->expires_at ]); }