summaryrefslogtreecommitdiff
path: root/controllers/controllers.php
diff options
context:
space:
mode:
Diffstat (limited to 'controllers/controllers.php')
-rw-r--r--controllers/controllers.php14
1 files changed, 12 insertions, 2 deletions
diff --git a/controllers/controllers.php b/controllers/controllers.php
index 215b932..90c229a 100644
--- a/controllers/controllers.php
+++ b/controllers/controllers.php
@@ -441,12 +441,21 @@ $app->post('/favorite', function() use($app) {
if($user=require_login($app)) {
$params = $app->request()->params();
+ $error = false;
+
if(isset($params['edit'])) {
$r = edit_favorite($user, $params['edit'], $params['like_of']);
if(isset($r['location']) && $r['location'])
$location = $r['location'];
- else
+ elseif(in_array($r['code'], [200,201,204]))
$location = $params['edit'];
+ elseif(in_array($r['code'], [401,403])) {
+ $location = false;
+ $error = 'Your Micropub endpoint denied the request. Check that Quill is authorized to update posts.';
+ } else {
+ $location = false;
+ $error = 'Your Micropub endpoint did not return a location header or a recognized response code';
+ }
} else {
$r = create_favorite($user, $params['like_of']);
$location = $r['location'];
@@ -455,7 +464,8 @@ $app->post('/favorite', function() use($app) {
$app->response()['Content-type'] = 'application/json';
$app->response()->body(json_encode(array(
'location' => $location,
- 'error' => $r['error']
+ 'error' => $r['error'],
+ 'error_details' => $error,
)));
}
});