From 69105b382811606f3cc64634d620a3f4d13603b6 Mon Sep 17 00:00:00 2001 From: James Brooks Date: Sat, 22 Nov 2014 14:01:01 +0000 Subject: [PATCH] Create migrations and models for Web Hooks --- .../2014_11_22_134023_CreateWebHooksTable.php | 41 ++++++++++++++++++ ..._22_134136_CreateWebHookResponsesTable.php | 42 +++++++++++++++++++ app/models/WebHook.php | 7 ++++ app/models/WebHookContent.php | 5 +++ 4 files changed, 95 insertions(+) create mode 100644 app/database/migrations/2014_11_22_134023_CreateWebHooksTable.php create mode 100644 app/database/migrations/2014_11_22_134136_CreateWebHookResponsesTable.php create mode 100644 app/models/WebHook.php create mode 100644 app/models/WebHookContent.php diff --git a/app/database/migrations/2014_11_22_134023_CreateWebHooksTable.php b/app/database/migrations/2014_11_22_134023_CreateWebHooksTable.php new file mode 100644 index 00000000..860a2701 --- /dev/null +++ b/app/database/migrations/2014_11_22_134023_CreateWebHooksTable.php @@ -0,0 +1,41 @@ +increments('id'); + $table->string('name')->nullable(FALSE); + $table->string('endpoint')->nullable(FALSE); + $table->tinyInteger('hook_type')->default(0); // When should this web hook be called? + $table->tinyInteger('request_type')->default(0); // ENUM: GET, POST, PUT, DELETE etc + $table->boolean('active')->default(0); + $table->timestamps(); + $table->softDeletes(); + + // Indexes + $table->index('active'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('web_hooks'); + } + +} diff --git a/app/database/migrations/2014_11_22_134136_CreateWebHookResponsesTable.php b/app/database/migrations/2014_11_22_134136_CreateWebHookResponsesTable.php new file mode 100644 index 00000000..bbec71e2 --- /dev/null +++ b/app/database/migrations/2014_11_22_134136_CreateWebHookResponsesTable.php @@ -0,0 +1,42 @@ +increments('id'); + $table->integer('hook_id')->unsigned(); + $table->tinyInteger('response_code')->nullable(FALSE); // This should return something like 200, 301 etc. + $table->string('response_type'); // application/json etc. + $table->text('sent_headers'); + $table->longText('sent_body'); // What we sent the web hook + $table->text('recv_headers'); + $table->longText('recv_body'); // Potentially a big response will be returned + $table->float('time_taken')->default(0); // How long did the request take, in seconds. + $table->timestamps(); + + $table->index('hook_id'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('web_hook_response'); + } + +} diff --git a/app/models/WebHook.php b/app/models/WebHook.php new file mode 100644 index 00000000..a440571e --- /dev/null +++ b/app/models/WebHook.php @@ -0,0 +1,7 @@ +hasMany('WebHookContent', 'hook_id', 'id'); + } + } diff --git a/app/models/WebHookContent.php b/app/models/WebHookContent.php new file mode 100644 index 00000000..8bc3d652 --- /dev/null +++ b/app/models/WebHookContent.php @@ -0,0 +1,5 @@ +