abstractregserver.h 2.12 KB
Newer Older
Chadwick Strange's avatar
Chadwick Strange committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
/*
    Copyright (C) 2019-Present SKALE Labs

    This file is part of sgxwallet.

    sgxwallet is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published
    by the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    sgxwallet is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with sgxwallet.  If not, see <https://www.gnu.org/licenses/>.

    @file abstractregserver.h
    @author Stan Kladko
    @date 2019
*/
23 24 25 26

#ifndef SGXD_ABSTRACTREGSERVER_H
#define SGXD_ABSTRACTREGSERVER_H

27
#include <jsonrpccpp/server.h>
28
#include <iostream>
29 30 31 32 33 34

class AbstractRegServer : public jsonrpc::AbstractServer<AbstractRegServer>
{
public:
  AbstractRegServer(jsonrpc::AbstractServerConnector &conn, jsonrpc::serverVersion_t type = jsonrpc::JSONRPC_SERVER_V2) : jsonrpc::AbstractServer<AbstractRegServer>(conn, type)
  {
kladko's avatar
kladko committed
35 36
    this->bindAndAddMethod(jsonrpc::Procedure("signCertificate", jsonrpc::PARAMS_BY_NAME, jsonrpc::JSON_OBJECT,"certificate",jsonrpc::JSON_STRING, NULL), &AbstractRegServer::signCertificateI);
    this->bindAndAddMethod(jsonrpc::Procedure("getCertificate", jsonrpc::PARAMS_BY_NAME, jsonrpc::JSON_OBJECT,"hash",jsonrpc::JSON_STRING, NULL), &AbstractRegServer::getCertificateI);
37 38
  }

kladko's avatar
kladko committed
39
  inline virtual void signCertificateI(const Json::Value &request, Json::Value &response)
40
  {
kladko's avatar
kladko committed
41
      std::cerr << "signCertificateI in abstr server " << std::endl;
42
      response = this->SignCertificate(request["certificate"].asString());
43
  }
kladko's avatar
kladko committed
44
  inline virtual void getCertificateI(const Json::Value &request, Json::Value &response)
45
  {
46
    response = this->GetCertificate(request["hash"].asString());
47 48 49
  }


50 51
  virtual Json::Value SignCertificate(const std::string& cert) = 0;
  virtual Json::Value GetCertificate(const std::string& hash) = 0;
52 53 54 55

};

#endif // SGXD_ABSTRACTREGSERVER_H