| 181 | } |
| 182 | |
| 183 | bool DataProcessorsRuntimeHost::onValidate( |
| 184 | void* ctx, PJ_string_view_t kind, PJ_string_view_t language, PJ_string_view_t script, PJ_string_view_t params_json, |
| 185 | PJ_error_t* out_error) noexcept { |
| 186 | auto* self = static_cast<DataProcessorsRuntimeHost*>(ctx); |
| 187 | if (self == nullptr) { |
| 188 | return false; |
| 189 | } |
| 190 | try { |
| 191 | if (!parseKind(sdk::toStringView(kind))) { |
| 192 | sdk::fillError( |
| 193 | out_error, kErrorRejected, kDomain, |
| 194 | "unknown data processor kind '" + std::string(sdk::toStringView(kind)) + "'"); |
| 195 | return false; |
| 196 | } |
| 197 | auto status = self->service_.validateScript( |
| 198 | sdk::toStringView(script), sdk::toStringView(language), sdk::toStringView(params_json)); |
| 199 | if (!status.has_value()) { |
| 200 | sdk::fillError(out_error, kErrorRejected, kDomain, status.error()); |
| 201 | return false; |
| 202 | } |
| 203 | return true; |
| 204 | } catch (const std::exception& e) { |
| 205 | sdk::fillError(out_error, kErrorInternal, kDomain, e.what()); |
| 206 | return false; |
| 207 | } catch (...) { |
| 208 | sdk::fillError(out_error, kErrorInternal, kDomain, "unknown error validating script"); |
| 209 | return false; |
| 210 | } |
| 211 | } |
| 212 | |
| 213 | } // namespace PJ |
nothing calls this directly
no test coverage detected