X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=lib%2Ffunctions.php;h=9130fd40b53074d1cc46cf97605acde67e4a6b65;hb=2121556150be871684b5046af7cf250b8219128d;hp=9e82d7200aef3ee44f6ca068bb29e6135f873874;hpb=2451d97f1cb7b97e445b4dd839835b8673a4d0fc;p=m6w6%2Fseekat diff --git a/lib/functions.php b/lib/functions.php index 9e82d72..9130fd4 100644 --- a/lib/functions.php +++ b/lib/functions.php @@ -1,75 +1,28 @@ getMessage(); - } else { - $message = $error; - $error = new \Exception($error); +namespace { + if (!function_exists("uri_template")) { + function uri_template(string $str, array $arr = []) : string { + $tpl = new \Rize\UriTemplate; + return $tpl->expand($str, $arr); + } } - return $message; } -namespace seekat\API\Links; - -use React\Promise\{ - ExtendedPromiseInterface, - function reject -}; -use seekat\API; -use seekat\API\Call\Cache; - -/** - * Perform a GET request against the link's "first" relation - * - * @return ExtendedPromiseInterface - */ -function first(API $api, Cache\Service $cache = null) : ExtendedPromiseInterface { - $links = $api->getLinks(); - if ($links && ($first = $links->getFirst())) { - return $api->withUrl($first)->get(null, null, $cache); +namespace seekat { + /** + * Generate a human readable representation of a variable + * @param mixed $arg + * @param bool $export whether to var_export the $arg + * @return string + */ + function typeof($arg, $export = false) { + $type = is_object($arg) + ? "instance of ".get_class($arg) + : gettype($arg); + if ($export) { + $type .= ": ".var_export($arg, true); + } + return $type; } - return reject($links); } - -/** - * Perform a GET request against the link's "prev" relation - * - * @return ExtendedPromiseInterface - */ -function prev(API $api, Cache\Service $cache = null) : ExtendedPromiseInterface { - $links = $api->getLinks(); - if ($links && ($prev = $links->getPrev())) { - return $api->withUrl($prev)->get(null, null, $cache); - } - return reject($links); -} - -/** - * Perform a GET request against the link's "next" relation - * - * @return ExtendedPromiseInterface - */ -function next(API $api, Cache\Service $cache = null) : ExtendedPromiseInterface { - $links = $api->getLinks(); - if ($links && ($next = $links->getNext())) { - return $api->withUrl($next)->get(null, null, $cache); - } - return reject($links); -} - -/** - * Perform a GET request against the link's "last" relation - * - * @return ExtendedPromiseInterface - */ -function last(API $api, Cache\Service $cache = null) : ExtendedPromiseInterface { - $links = $api->getLinks(); - if ($links && ($last = $links->getLast())) { - return $api->withUrl($last)->get(null, null, $cache); - } - return reject($links); -} -