1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
<?php
namespace APWG\API\Phish;
use APWG\API\AbstractClient;
use Psr\Http\Message\ResponseInterface;
/**
* Interact with the Phish (UBL) API
*
* Class PhishClient
* @package APWG\API\Phish
* @author Andrew Breksa <andrew@apwg.org>
* @copyright Copyright (c) 2017 The Anti-Phishing Working Group
*/
class PhishClient extends AbstractClient {
/**
* Searches the Phish module
*
* @param array $options an associative array of query parameters
*
* @return ResponseInterface
*/
public function search($options = []) {
return $this->_call('get', 'phish', [
'query' => $options,
]);
}
/**
* Gets a specific phish
*
* @param int $id the phish id
* @param array $options an associative array of query parameters
*
* @return ResponseInterface
*/
public function get($id, $options = []) {
return $this->_call('get', 'phish/' . $id, [
'query' => $options,
]);
}
/**
* Submits a new phish
*
* @param array $data an associative array of phish data
* @param array $options an associative array pf query parameters
*
* @return ResponseInterface
*/
public function create($data, $options = []) {
return $this->_call('post', 'phish', [
'json' => $data,
'query' => $options,
]);
}
/**
* Marks a phish as inactive
*
* @deprecated
*
* @param int $id the phish id
*
* @return ResponseInterface
*/
public function inactive($id) {
return $this->_call('delete', 'phish/' . $id);
}
/**
* Checks that a phish by that ID exists and returns a last-modified header
*
* @param int $id the phish id
*
* @return ResponseInterface
*/
public function head($id) {
return $this->_call('head', 'phish/' . $id);
}
/**
* Updates a phish
*
* @param int $id the phish id
* @param array $data
*
* @return ResponseInterface
*/
public function patch($id, $data, $options = []) {
return $this->_call('patch', 'phish/' . $id, [
'json' => $data,
'query' => $options,
]);
}
/**
* Revives an inactive phish
*
* @deprecated
*
* @param int $id the phish id
* @param array $data
*
* @return ResponseInterface
*/
public function revive($id, $data) {
return $this->_call('put', 'phish/' . $id, [
'json' => $data,
]);
}
/**
* Searches the UBL activity listing
*
* @param array $options an associative array of query parameters
*
* @return ResponseInterface
*/
public function searchActivity($options = []) {
return $this->_call('get', 'phish/activity', [
'query' => $options,
]);
}
/**
* Get the UBL activity listings for a specific phish
*
* @param $id
* @param $options
*
* @return ResponseInterface
*/
public function activity($id, $options = []) {
return $this->_call('get', 'phish/' . $id . '/activity', [
'query' => $options,
]);
}
/**
* Return a JSON schema for the phish module's GET:/phish endpoint parameters, useful for validating Alert queries
*
* @param int $id the phish id
* @param array $options an associative array of query parameters
*
* @return ResponseInterface
*/
public function getParamSchema($options = []) {
return $this->_call('get', 'phish/param_schema', [
'query' => $options,
]);
}
}