From 68016e37983b882c51c6ac92da6f6cc1250676e5 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Thu, 5 Jan 2017 15:58:24 +0100 Subject: REST API: implement POST link service --- application/api/ApiUtils.php | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) (limited to 'application/api/ApiUtils.php') diff --git a/application/api/ApiUtils.php b/application/api/ApiUtils.php index d4015865..b8155a34 100644 --- a/application/api/ApiUtils.php +++ b/application/api/ApiUtils.php @@ -12,7 +12,7 @@ class ApiUtils /** * Validates a JWT token authenticity. * - * @param string $token JWT token extracted from the headers. + * @param string $token JWT token extracted from the headers. * @param string $secret API secret set in the settings. * * @throws ApiAuthorizationException the token is not valid. @@ -50,7 +50,7 @@ class ApiUtils /** * Format a Link for the REST API. * - * @param array $link Link data read from the datastore. + * @param array $link Link data read from the datastore. * @param string $indexUrl Shaarli's index URL (used for relative URL). * * @return array Link data formatted for the REST API. @@ -77,4 +77,35 @@ class ApiUtils } return $out; } + + /** + * Convert a link given through a request, to a valid link for LinkDB. + * + * If no URL is provided, it will generate a local note URL. + * If no title is provided, it will use the URL as title. + * + * @param array $input Request Link. + * @param bool $defaultPrivate Request Link. + * + * @return array Formatted link. + */ + public static function buildLinkFromRequest($input, $defaultPrivate) + { + $input['url'] = ! empty($input['url']) ? cleanup_url($input['url']) : ''; + if (isset($input['private'])) { + $private = filter_var($input['private'], FILTER_VALIDATE_BOOLEAN); + } else { + $private = $defaultPrivate; + } + + $link = [ + 'title' => ! empty($input['title']) ? $input['title'] : $input['url'], + 'url' => $input['url'], + 'description' => ! empty($input['description']) ? $input['description'] : '', + 'tags' => ! empty($input['tags']) ? implode(' ', $input['tags']) : '', + 'private' => $private, + 'created' => new \DateTime(), + ]; + return $link; + } } -- cgit v1.2.3