deep-foundation / cpp-docker-isolation-provider

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

cpp-docker-isolation-provider

Quick Start

auto fn(auto params) {
    //your code
}

or install @archer-lotos/cpp-tests package in deep

Information about handler parameters

  • /healthz - GET - 200 - Health check endpoint
    • Response:
      • {}
  • /init - GET - 200 - Initialization endpoint
    • Response:
      • {}
  • /call and /http-call - GET - 200 - Call executable code of handler in this isolation provider
    • Request:
      • body:
        • params:
          • jwt: STRING - Deeplinks send this token, for create gql and deep client
          • code: STRING - Code of handler
          • data: {} - Data for handler execution from deeplinks

            If this is type handler

            • oldLink - from deeplinks, link before transaction
            • newLink - from deeplinks, link after transaction
            • promiseId - from deeplinks, promise id
    • Response:
      • { resolved?: any; rejected?: any; } - If resolved or rejected is not null, then it's result of execution

Information about params in function fn

  • params.deep - Deep Client instance
  • params.data - Data for handler execution from deeplinks
class HandlerParameters {
public:
    DeepClientCppWrapper deep;
    json data;

    HandlerParameters() = default;

    ~HandlerParameters() = default;

    HandlerParameters(auto deepClient, auto jsonData): deep(deepClient) {
        data = json::parse(jsonData);
    }

};

Examples

auto fn(auto params) {
    return params.data;
}
auto fn(auto params) {
    return params.data["newLink"]["id"];
}
auto fn(auto params) {
    return params.deep.id(
            StringValue::make("@deep-foundation/core"),
            StringValue::make("Symbol")
        );
}
auto fn(auto params) {
    return params.deep.select(IntValue::make(1))->toJson();
}
auto fn(auto params) {
    std::string originalStr = "DeepFoundation";

    return params.deep.insert(AssociativeArray::makeFromJson({
        {"type_id", 146},
        {"string", {
            {"data", {
                {"value", std::string(originalStr.rbegin(), originalStr.rend())}
            }}
        }},
        {"from_id", params.data["newLink"]["id"]},
        {"to_id", params.data["newLink"]["id"]}
    }))->toJson();
}
auto fn(auto params) {
    return params.deep.insert(AssociativeArray::make({
        {"type_id", 58},
        {"from_id", 0},
        {"to_id", 0}
    }))->toJson();
}

Install/Build

pip install -r requirements.txt

apt-get install autoconf cmake make automake libtool git libboost-all-dev libssl-dev g++
#apt-get install libboost-python1.74-dev
cmake .
make
./cpp-docker-isolation-provider

Or Local restart docker

docker build -t cpp-docker-isolation-provider .
docker run -d -p 39100:39100 -e PORT=39100 cpp-docker-isolation-provider
docker ps

Check open ports

netstat -tuln
curl http://localhost:39100

About

License:The Unlicense


Languages

Language:C++ 65.1%Language:C 34.6%Language:Python 0.2%Language:CMake 0.1%Language:Dockerfile 0.0%