+++ /dev/null
-<?php
-
-use Friendica\App;
-use Friendica\Model\Item;
-use Friendica\Util\Strings;
-
-function like_content(App $a) {
- if (!local_user() && !remote_user()) {
- return false;
- }
-
-
- $verb = Strings::escapeTags(trim($_GET['verb']));
-
- if (!$verb) {
- $verb = 'like';
- }
-
- $item_id = (($a->argc > 1) ? Strings::escapeTags(trim($a->argv[1])) : 0);
-
- $r = Item::performLike($item_id, $verb);
- if (!$r) {
- return;
- }
-
- // See if we've been passed a return path to redirect to
- $return_path = defaults($_REQUEST, 'return', '');
-
- like_content_return($a, $return_path);
- exit();
-}
-
-
-// Decide how to return. If we were called with a 'return' argument,
-// then redirect back to the calling page. If not, just quietly end
-
-function like_content_return(App $a, $return_path) {
- if ($return_path) {
- $rand = '_=' . time();
- if (strpos($return_path, '?')) {
- $rand = "&$rand";
- } else {
- $rand = "?$rand";
- }
-
- $a->internalRedirect($return_path . $rand);
- }
-}
$collector->addRoute(['GET'], '/testrewrite', Module\Install::class);
});
$this->routeCollector->addRoute(['GET', 'POST'], '/itemsource[/{guid}]', Module\Itemsource::class);
+ $this->routeCollector->addRoute(['GET'], '/like/{item:\d+}', Module\Like::class);
$this->routeCollector->addRoute(['GET', 'POST'], '/localtime', Module\Localtime::class);
$this->routeCollector->addRoute(['GET', 'POST'], '/login', Module\Login::class);
$this->routeCollector->addRoute(['GET', 'POST'], '/logout', Module\Logout::class);
--- /dev/null
+<?php
+
+namespace Friendica\Module;
+
+use Friendica\BaseModule;
+use Friendica\Model\Item;
+use Friendica\Network\HTTPException;
+use Friendica\Util\Strings;
+
+/**
+ * Performs a like and optionally redirects to a return path
+ */
+class Like extends BaseModule
+{
+ public static function rawContent()
+ {
+ if (!local_user() && !remote_user()) {
+ throw new HTTPException\ForbiddenException();
+ }
+
+ $verb = Strings::escapeTags(trim($_GET['verb']));
+
+ if (!$verb) {
+ $verb = 'like';
+ }
+
+ $app = self::getApp();
+
+ // @TODO: Replace with parameter from router
+ $itemId = (($app->argc > 1) ? Strings::escapeTags(trim($app->argv[1])) : 0);
+
+ if (!Item::performLike($itemId, $verb)) {
+ throw new HTTPException\BadRequestException();
+ }
+
+ // Decide how to return. If we were called with a 'return' argument,
+ // then redirect back to the calling page. If not, just quietly end
+ $returnPath = defaults($_REQUEST, 'return', '');
+
+ if (!empty($returnPath)) {
+ $rand = '_=' . time();
+ if (strpos($returnPath, '?')) {
+ $rand = "&$rand";
+ } else {
+ $rand = "?$rand";
+ }
+
+ $app->internalRedirect($returnPath . $rand);
+ }
+ }
+}