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 ]); }