-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Expand file tree
/
Copy pathServerMeta.cpp
More file actions
73 lines (61 loc) · 1.99 KB
/
Copy pathServerMeta.cpp
File metadata and controls
73 lines (61 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*
* ServerMeta.cpp
*
* Copyright (C) 2021 by RStudio, PBC
*
* Unless you have received this program directly from RStudio pursuant
* to the terms of a commercial license agreement with RStudio, then
* this program is licensed to you under the terms of version 3 of the
* GNU Affero General Public License. This program is distributed WITHOUT
* ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT,
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the
* AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details.
*
*/
#include "ServerMeta.hpp"
#include <core/Log.hpp>
#include <core/http/Request.hpp>
#include <core/http/Response.hpp>
#include <core/json/JsonRpc.hpp>
using namespace rstudio::core;
namespace rstudio {
namespace server {
namespace meta {
namespace {
void handleInitMessagesRequest(const json::JsonRpcRequest& request,
json::JsonRpcResponse* pResponse)
{
pResponse->setResult(json::Value());
}
} // anonymous namespace
void handleMetaRequest(const std::string& username,
const core::http::Request& request,
core::http::Response* pResponse)
{
// parse request
json::JsonRpcRequest jsonRpcRequest;
Error parseError = parseJsonRpcRequest(request.body(), &jsonRpcRequest);
if (parseError)
{
LOG_ERROR(parseError);
json::setJsonRpcError(parseError, pResponse);
return;
}
// check for supported methods
if (jsonRpcRequest.method == "get_init_messages")
{
json::JsonRpcResponse jsonResponse;
handleInitMessagesRequest(jsonRpcRequest, &jsonResponse);
json::setJsonRpcResponse(jsonResponse, pResponse);
}
else
{
Error methodError = Error(json::errc::MethodNotFound, ERROR_LOCATION);
methodError.addProperty("method", jsonRpcRequest.method);
LOG_ERROR(methodError);
json::setJsonRpcError(methodError, pResponse);
}
}
} // namespace meta
} // namespace server
} // namespace rstudio