X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=application%2Fapi%2FApiUtils.php;h=d40158652d1f66680cfd5ceea17623b9a8eef5a8;hb=9977c418d6d0de9e22e4ec276e7d476e184b5d01;hp=a419c39669a1a44bde14cb7baf8a3b3471041d50;hpb=5fbab3edb300ad770d88f40ba1cc50d5b93a5bb8;p=github%2Fshaarli%2FShaarli.git diff --git a/application/api/ApiUtils.php b/application/api/ApiUtils.php index a419c396..d4015865 100644 --- a/application/api/ApiUtils.php +++ b/application/api/ApiUtils.php @@ -46,4 +46,35 @@ class ApiUtils throw new ApiAuthorizationException('Invalid JWT issued time'); } } + + /** + * Format a Link for the REST API. + * + * @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. + */ + public static function formatLink($link, $indexUrl) + { + $out['id'] = $link['id']; + // Not an internal link + if ($link['url'][0] != '?') { + $out['url'] = $link['url']; + } else { + $out['url'] = $indexUrl . $link['url']; + } + $out['shorturl'] = $link['shorturl']; + $out['title'] = $link['title']; + $out['description'] = $link['description']; + $out['tags'] = preg_split('/\s+/', $link['tags'], -1, PREG_SPLIT_NO_EMPTY); + $out['private'] = $link['private'] == true; + $out['created'] = $link['created']->format(\DateTime::ATOM); + if (! empty($link['updated'])) { + $out['updated'] = $link['updated']->format(\DateTime::ATOM); + } else { + $out['updated'] = ''; + } + return $out; + } }