Bunch of stuff
parent
4942fdbfda
commit
403b87bbda
@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace BusinessObjects;
|
||||
|
||||
class Category {
|
||||
/**
|
||||
* @var int The category ID
|
||||
*/
|
||||
public $id;
|
||||
|
||||
/**
|
||||
* @var int Category order number
|
||||
*/
|
||||
public $catOrder;
|
||||
|
||||
/**
|
||||
* @var bool Tickets autoassigned in this category
|
||||
*/
|
||||
public $autoAssign;
|
||||
|
||||
/**
|
||||
* @var int The type of category (1 = Private, 2 = Public)
|
||||
*/
|
||||
public $type;
|
||||
|
||||
/**
|
||||
* @var int The category's usage (0 = Tickets and Events, 1 = Tickets, 2 = Events)
|
||||
*/
|
||||
public $usage;
|
||||
|
||||
/**
|
||||
* @var string? The color of the category
|
||||
*/
|
||||
public $color;
|
||||
|
||||
/**
|
||||
* @var int The default ticket priority
|
||||
*/
|
||||
public $priority;
|
||||
|
||||
/**
|
||||
* @var int? The manager for the category, if applicable
|
||||
*/
|
||||
public $manager;
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: user
|
||||
* Date: 1/16/17
|
||||
* Time: 10:10 PM
|
||||
*/
|
||||
|
||||
namespace BusinessLogic\Category;
|
||||
|
||||
use DataAccess\CategoryGateway;
|
||||
|
||||
class CategoryRetriever {
|
||||
static function get_all_categories($hesk_settings) {
|
||||
require_once(__DIR__ . '/../../dao/CategoryGateway.php');
|
||||
|
||||
return CategoryGateway::getAllCategories($hesk_settings);
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
<?php
|
||||
namespace BusinessLogic\Category;
|
||||
|
||||
use DataAccess\CategoryGateway;
|
||||
|
@ -1,58 +0,0 @@
|
||||
<?php
|
||||
define('IN_SCRIPT', 1);
|
||||
define('HESK_PATH', '../../');
|
||||
define('API_PATH', '../');
|
||||
require_once(HESK_PATH . 'hesk_settings.inc.php');
|
||||
require_once(HESK_PATH . 'inc/common.inc.php');
|
||||
require_once(API_PATH . 'core/output.php');
|
||||
require_once(API_PATH . 'dao/category_dao.php');
|
||||
|
||||
hesk_load_api_database_functions();
|
||||
hesk_dbConnect();
|
||||
|
||||
// Routing
|
||||
$request_method = $_SERVER['REQUEST_METHOD'];
|
||||
|
||||
/**
|
||||
* @api {get} /category Retrieve a ticket category
|
||||
* @apiVersion 0.0.0
|
||||
* @apiName GetCategory
|
||||
* @apiGroup Category
|
||||
* @apiPermission public
|
||||
*
|
||||
* @apiParam {Number} [id] The ID of the category. Omit for all categories.
|
||||
*
|
||||
* @apiSuccess {Number} id ID of the category
|
||||
* @apiSuccess {String} name The name of the category
|
||||
* @apiSuccess {Integer} displayOrder The order of the category (in multiples of 10)
|
||||
* @apiSuccess {Boolean} autoassign `true` if tickets set to this category are automatically assigned.<br>`false` otherwise
|
||||
* @apiSuccess {Integer} type `0` - Public<br>`1` - Private
|
||||
* @apiSuccess {Integer} priority Default priority of tickets created in this category
|
||||
* @apiSuccess {Integer} manager User ID of the category manager, or `null` if there is no manager.
|
||||
*
|
||||
* @apiSuccessExample {json} Success-Response:
|
||||
* HTTP/1.1 200 OK
|
||||
* {
|
||||
* "id": 1,
|
||||
* "name": "General",
|
||||
* "displayOrder": 10,
|
||||
* "autoassign": true,
|
||||
* "type": 0,
|
||||
* "priority": 2,
|
||||
* "manager": null
|
||||
* }
|
||||
*/
|
||||
if ($request_method == 'GET') {
|
||||
if (isset($_GET['id'])) {
|
||||
$results = get_category($hesk_settings, $_GET['id']);
|
||||
} else {
|
||||
$results = get_category($hesk_settings);
|
||||
}
|
||||
|
||||
if ($results == NULL) {
|
||||
return http_response_code(404);
|
||||
}
|
||||
return output($results);
|
||||
}
|
||||
|
||||
return http_response_code(405);
|
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: user
|
||||
* Date: 1/16/17
|
||||
* Time: 10:12 PM
|
||||
*/
|
||||
|
||||
namespace Controllers\Category;
|
||||
|
||||
use BusinessLogic\Category\CategoryRetriever;
|
||||
|
||||
class CategoryController {
|
||||
static function getAllCategories($hesk_settings) {
|
||||
require_once(__DIR__ . '/../businesslogic/category/CategoryRetriever.php');
|
||||
|
||||
return json_encode(CategoryRetriever::get_all_categories($hesk_settings));
|
||||
}
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: user
|
||||
* Date: 1/16/17
|
||||
* Time: 10:06 PM
|
||||
*/
|
||||
|
||||
namespace DataAccess;
|
||||
|
||||
use BusinessObjects\Category;
|
||||
|
||||
class CategoryGateway {
|
||||
static function getAllCategories($hesk_settings) {
|
||||
require_once(__DIR__ . '/../businesslogic/category/Category.php');
|
||||
|
||||
$sql = 'SELECT * FROM `' . \hesk_dbEscape($hesk_settings['db_pfix']) . 'categories`';
|
||||
|
||||
$response = hesk_dbQuery($sql);
|
||||
|
||||
$results = array();
|
||||
while ($row = hesk_dbFetchAssoc($response)) {
|
||||
$category = new Category();
|
||||
|
||||
$category->id = intval($row['id']);
|
||||
$category->catOrder = intval($row['cat_order']);
|
||||
$category->autoAssign = $row['autoassign'] == 1;
|
||||
$category->type = intval($row['type']);
|
||||
$category->usage = intval($row['usage']);
|
||||
$category->color = $row['color'];
|
||||
$category->priority = intval($row['priority']);
|
||||
$category->manager = intval($row['manager']) == 0 ? NULL : intval($row['manager']);
|
||||
$results[$category->id] = $category;
|
||||
}
|
||||
|
||||
return $results;
|
||||
}
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: user
|
||||
* Date: 1/16/17
|
||||
* Time: 10:18 PM
|
||||
*/
|
||||
|
||||
namespace DataAccess;
|
||||
|
||||
|
||||
use mysqli;
|
||||
|
||||
class Connection {
|
||||
static function connect($hesk_settings) {
|
||||
//-- Return mysqli_connection
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $mysqliConnection mysqli The MySQLi connection obtained from Connection::connect
|
||||
* @return bool true if connection closed, false otherwise
|
||||
*/
|
||||
static function close($mysqliConnection) {
|
||||
return $mysqliConnection->close();
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
define('IN_SCRIPT', 1);
|
||||
|
||||
// Just call the controller
|
||||
require_once(__DIR__ . '/controllers/CategoryController.php');
|
||||
require_once(__DIR__ . '/../hesk_settings.inc.php');
|
||||
|
||||
\Controllers\Category\CategoryController::getAllCategories($hesk_settings);
|
@ -1,3 +0,0 @@
|
||||
<?php
|
||||
// The loader is responsible for loading all necessary PHP classes to run the API. No more need to import everything
|
||||
// manually.
|
Loading…
Reference in New Issue