Files
wp-multisite-waas/inc/models/class-webhook.php
2024-11-30 18:24:12 -07:00

325 lines
5.6 KiB
PHP

<?php
/**
* The Webhook model.
*
* @package WP_Ultimo
* @subpackage Models
* @since 2.0.0
*/
namespace WP_Ultimo\Models;
use WP_Ultimo\Models\Base_Model;
// Exit if accessed directly
defined('ABSPATH') || exit;
/**
* Webhook model class. Implements the Base Model.
*
* @since 2.0.0
*/
class Webhook extends Base_Model {
/**
* The name of the webhook.
*
* @since 2.0.0
* @var string
*/
protected $name = '';
/**
* URL to be called when this webhook is triggered.
*
* @since 2.0.0
* @var string
*/
protected $webhook_url = '';
/**
* Event that should trigger this webhook.
*
* @since 2.0.0
* @var string
*/
protected $event = '';
/**
* The number of times this webhook was triggered.
*
* @since 2.0.0
* @var integer
*/
protected $event_count = 0;
/**
* Is this webhook active?
*
* @since 2.0.0
* @var boolean
*/
protected $active = true;
/**
* Is this webhook hidden?
*
* @since 2.0.0
* @var boolean
*/
protected $hidden = false;
/**
* Integration name.
*
* @since 2.0.0
* @var string
*/
protected $integration = 'manual';
/**
* Date when this was created.
*
* @since 2.0.0
* @var string
*/
protected $date_created;
/**
* Date when this webhook last failed.
*
* @since 2.0.0
* @var string
*/
protected $date_last_failed = '0000-00-00 00:00:00';
/**
* Query Class to the static query methods.
*
* @since 2.0.0
* @var string
*/
protected $query_class = '\\WP_Ultimo\\Database\\Webhooks\\Webhook_Query';
/**
* Set the validation rules for this particular model.
*
* To see how to setup rules, check the documentation of the
* validation library we are using: https://github.com/rakit/validation
*
* @since 2.0.0
* @link https://github.com/rakit/validation
* @return array
*/
public function validation_rules() {
return array(
'name' => 'required|min:2',
'webhook_url' => 'required|url:http,https',
'event' => 'required',
'event_count' => 'default:0',
'active' => 'default:1',
'hidden' => 'default:0',
'integration' => 'required|min:2',
'date_last_failed' => 'default:'
);
} // end validation_rules;
/**
* Get the value of name.
*
* @return string
*/
public function get_name() {
return $this->name;
} // end get_name;
/**
* Set the value of name.
*
* @param string $name Webhook name, which is used as product title as well.
*/
public function set_name($name) {
$this->name = $name;
} // end set_name;
/**
* Get the value of webhook_url.
*
* @return string
*/
public function get_webhook_url() {
return $this->webhook_url;
} // end get_webhook_url;
/**
* Set the value of webhook_url.
*
* @param string $webhook_url The URL used for the webhook call.
*/
public function set_webhook_url($webhook_url) {
$this->webhook_url = $webhook_url;
} // end set_webhook_url;
/**
* Get the value of event.
*
* @return string
*/
public function get_event() {
return $this->event;
} // end get_event;
/**
* Set the value of event.
*
* @param string $event The event that needs to be fired for this webhook to be sent.
*/
public function set_event($event) {
$this->event = $event;
} // end set_event;
/**
* Get the value of event_count.
*
* @return int The number of times this webhook was triggered and sent.
*/
public function get_event_count() {
return (int) $this->event_count;
} // end get_event_count;
/**
* Set the value of event_count.
*
* @param int $event_count How many times this webhook was sent.
*/
public function set_event_count($event_count) {
$this->event_count = $event_count;
} // end set_event_count;
/**
* Check if this particular mapping is active.
*
* @since 2.0.0
* @return boolean
*/
public function is_active() {
return (bool) $this->active;
} // end is_active;
/**
* Sets the active state of this model object;
*
* @since 2.0.0
*
* @param boolean $active Set this webhook as active (true), which means available will fire when the event occur, or inactive (false).
* @return void
*/
public function set_active($active) {
$this->active = (bool) wu_string_to_bool($active);
} // end set_active;
/**
* Get is this webhook hidden?
*
* @return boolean.
*/
public function is_hidden() {
return (bool) $this->hidden;
} // end is_hidden;
/**
* Set is this webhook hidden?
*
* @param boolean $hidden Is this webhook hidden.
*/
public function set_hidden($hidden) {
$this->hidden = $hidden;
} // end set_hidden;
/**
* Get integration name.
*
* @return string
*/
public function get_integration() {
return $this->integration;
} // end get_integration;
/**
* Get date when this was created..
*
* @since 2.0.0
* @return string
*/
public function get_date_created() {
return $this->date_created;
} // end get_date_created;
/**
* Get date when this was created..
*
* @since 2.0.0
* @return string
*/
public function get_date_last_failed() {
return $this->date_last_failed;
} // end get_date_last_failed;
/**
* Set date when this was created..
*
* @since 2.0.0
* @param string $date_created Date when this was created.
* @return void
*/
public function set_date_created($date_created) {
$this->date_created = $date_created;
} // end set_date_created;
/**
* Set integration name.
*
* @param string $integration The integration that created this webhook.
*/
public function set_integration($integration) {
$this->integration = $integration;
} // end set_integration;
} // end class Webhook;