Skip to content

Commit

Permalink
More API responses
Browse files Browse the repository at this point in the history
  • Loading branch information
kohler committed Sep 12, 2024
1 parent c9873ca commit 39bc76f
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 28 deletions.
46 changes: 31 additions & 15 deletions etc/apifunctions.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
{
"name": "acceptreview", "post": true, "redirect": true,
"function": "RequestReview_API::acceptreview",
"parameters": "p r"
"parameters": "p r",
"response": "action review_site_relative"
},
{
"name": "account", "get": true,
Expand All @@ -16,7 +17,8 @@
},
{
"name": "alltags", "get": true,
"function": "AllTags_API::run"
"function": "AllTags_API::run",
"response": "tags readonly_tagmap sitewide_tagmap"
},
{
"name": "assign", "post": true, "redirect": true,
Expand All @@ -36,7 +38,8 @@
{
"name": "comment", "paper": true, "get": true,
"function": "Comment_API::run",
"parameters": "c"
"parameters": "c",
"response": "cmt ?XXX"
},
{
"name": "comment", "paper": true, "post": true,
Expand All @@ -60,7 +63,8 @@
{
"name": "events", "get": true,
"function": "Events_API::run",
"parameters": "?from"
"parameters": "?from",
"response": "from to rows more"
},
{
"name": "fieldtext", "get": true,
Expand All @@ -69,17 +73,20 @@
{
"name": "fieldhtml", "get": true,
"function": "Search_API::fieldhtml",
"parameters": "f ?aufull ?session q ?t ?sort"
"parameters": "f ?aufull ?session q ?t ?sort",
"response": "fields data"
},
{
"name": "follow", "paper": true, "post": true, "xxx": true,
"function": "Follow_API::run",
"parameters": "?u =following"
"parameters": "?u =following",
"response": "following"
},
{
"name": "formatcheck", "get": true, "post": true,
"function": "FormatCheck_API::run",
"parameters": "?p ?doc ?soft ?dt ?docid"
"parameters": "?p ?doc ?soft ?dt ?docid",
"response": "npages nwords result problem_fields has_error docid"
},
{
"name": "graphdata", "get": true,
Expand Down Expand Up @@ -132,16 +139,19 @@
},
{
"name": "namedsearch", "get": true, "allow_if": "pc",
"function": "SearchConfig_API::namedsearch"
"function": "SearchConfig_API::namedsearch",
"response": "searches"
},
{
"name": "namedsearch", "post": true,
"function": "SearchConfig_API::save_namedsearch"
"function": "SearchConfig_API::save_namedsearch",
"response": "searches"
},
{
"name": "mentioncompletion", "get": true, "post": true,
"function": "Completion_API::mentioncompletion_api",
"parameters": "?p"
"parameters": "?p",
"response": "mentioncompletion"
},
{
"name": "oauthtoken", "post": true, "allow_disabled": true, "check_token": false,
Expand Down Expand Up @@ -197,7 +207,8 @@
{
"name": "revpref", "get": true,
"function": "Preference_API::pref_api",
"parameters": "p ?u"
"parameters": "p ?u",
"response": "value pref ?prefexp ?topic_score"
},
{
"name": "revpref", "post": true,
Expand All @@ -213,11 +224,13 @@
{
"name": "search", "get": true,
"function": "Search_API::search",
"parameters": "q t ?sort ?report ?scoresort"
"parameters": "q t ?sort ?report ?scoresort",
"response": "ids groups hotlist search_params"
},
{
"name": "searchcompletion", "get": true,
"function": "Completion_API::searchcompletion_api"
"function": "Completion_API::searchcompletion_api",
"response": "searchcompletion"
},
{
"name": "session", "get": true, "allow_disabled": true,
Expand Down Expand Up @@ -296,12 +309,15 @@
{
"name": "upload", "post": true,
"function": "Upload_API::run",
"parameters": "?p ?dtype ?start ?offset ?finish ?token ?cancel ?=size ?=mimetype ?=filename ?@blob"
"parameters": "?p ?dtype ?start ?offset ?finish ?token ?cancel ?=size ?=mimetype ?=filename ?@blob",
"response": "token dtype filename mimetype size ranges hash server_progress_loaded server_progress_max"

},
{
"name": "user", "get": true,
"function": "User_API::user",
"parameters": "email ?p ?potential_conflict"
"parameters": "email ?p ?potential_conflict",
"response": "found ?email ?given_name ?family_name ?affiliation ?potential_conflict"
},
{
"name": "viewoptions", "get": true, "post": true,
Expand Down
25 changes: 12 additions & 13 deletions scripts/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -7422,17 +7422,18 @@ function cmt_save_callback(cj) {
return;
}
cmt_toggle_editing(celt, false);
if (!data.comment && data.cmt) {
data.comment = data.cmt;
}
const editing_response = cj.response
&& cmt_is_editable(cj, true)
&& (!data.cmt || data.cmt.draft);
if (!data.cmt && editing_response) {
data.cmt = {is_new: true, response: cj.response, editable: true};
&& (!data.comment || data.comment.draft);
if (!data.comment && editing_response) {
data.comment = {is_new: true, response: cj.response, editable: true};
}
if (data.cmt && data.cmt.folded && data.cmt.collapsed == null) /* XXX */
data.cmt.collapsed = data.cmt.folded;
var new_cid = data.cmt ? cj_cid(data.cmt) : null;
var new_cid = data.comment ? cj_cid(data.comment) : null;
if (new_cid) {
cmts[new_cid] = data.cmt;
cmts[new_cid] = data.comment;
}
if (new_cid !== cid) {
if (!cj.is_new) {
Expand All @@ -7441,17 +7442,17 @@ function cmt_save_callback(cj) {
if (new_cid) {
celt.id = new_cid;
navsidebar.redisplay(celt);
last_visibility = data.cmt.visibility;
last_topic = data.cmt.topic || "rev";
last_visibility = data.comment.visibility;
last_topic = data.comment.topic || "rev";
} else {
celt.removeAttribute("id");
celt.replaceChildren($e("div", "cmtmsg"));
removeClass(celt, "cmtid");
navsidebar.remove(celt);
}
}
if (data.cmt) {
cmt_render(data.cmt, editing_response);
if (data.comment) {
cmt_render(data.comment, editing_response);
}
if (data.message_list) {
$(celt).find(".cmtmsg").html(feedback.render_alert(data.message_list));
Expand Down Expand Up @@ -7721,8 +7722,6 @@ function cmt_render_preview(evt, format, value, dest) {

function add_comment(cj, editing) {
var cid = cj_cid(cj), celt = $$(cid);
if (cj.folded && cj.collapsed == null) /* XXX */
cj.collapsed = cj.folded;
cmts[cid] = cj;
if (editing == null
&& cj.response
Expand Down
3 changes: 3 additions & 0 deletions src/api/api_specvalidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,9 @@ static function response($uf, Qrequest $qreq, JsonResult $jr) {
}
}
}
if (!$jr->content["ok"]) {
return;
}
foreach ($known as $n => $t) {
if (($t & (self::F_REQUIRED | self::F_PRESENT)) === self::F_REQUIRED) {
self::error($qreq, "response component `{$n}` missing");
Expand Down

0 comments on commit 39bc76f

Please sign in to comment.