void OnOK()

in src/rapid-client.cc [52:91]


    void OnOK() override {
        Napi::Env env = Env();
        auto response_data = Napi::String::New(env, response.payload.c_str());

        // TODO: The current javascript code (InvokeContext.js) to handle the header values itself.
        // These type conversions might be replaced by returning the final context object.
        auto headers = Napi::Object::New(env);
        headers.Set(
                Napi::String::New(env, "lambda-runtime-deadline-ms"),
                Napi::Number::New(env,
                                  std::chrono::duration_cast<std::chrono::milliseconds>(
                                          response.deadline.time_since_epoch()
                                  ).count()
                ));
        headers.Set(
                Napi::String::New(env, "lambda-runtime-aws-request-id"),
                Napi::String::New(env, response.request_id.c_str()));
        headers.Set(
                Napi::String::New(env, "lambda-runtime-trace-id"),
                Napi::String::New(env, response.xray_trace_id.c_str()));
        headers.Set(
                Napi::String::New(env, "lambda-runtime-invoked-function-arn"),
                Napi::String::New(env, response.function_arn.c_str()));
        if (response.client_context != "") {
            headers.Set(
                    Napi::String::New(env, "lambda-runtime-client-context"),
                    Napi::String::New(env, response.client_context.c_str()));
        }
        if (response.cognito_identity != "") {
            headers.Set(
                    Napi::String::New(env, "lambda-runtime-cognito-identity"),
                    Napi::String::New(env, response.cognito_identity.c_str()));
        }

        auto ret = Napi::Object::New(env);
        ret.Set(Napi::String::New(env, "bodyJson"), response_data);
        ret.Set(Napi::String::New(env, "headers"), headers);

        deferred.Resolve(ret);
    }