tinkerpop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TINKERPOP-1959) Provide a way to submit scripts to the server in gremlin-javascript
Date Fri, 21 Sep 2018 11:48:00 GMT

    [ https://issues.apache.org/jira/browse/TINKERPOP-1959?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16623452#comment-16623452
] 

ASF GitHub Bot commented on TINKERPOP-1959:
-------------------------------------------

Github user jorgebay commented on a diff in the pull request:

    https://github.com/apache/tinkerpop/pull/922#discussion_r219469511
  
    --- Diff: gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/client.js
---
    @@ -0,0 +1,87 @@
    +/*
    + *  Licensed to the Apache Software Foundation (ASF) under one
    + *  or more contributor license agreements.  See the NOTICE file
    + *  distributed with this work for additional information
    + *  regarding copyright ownership.  The ASF licenses this file
    + *  to you under the Apache License, Version 2.0 (the
    + *  "License"); you may not use this file except in compliance
    + *  with the License.  You may obtain a copy of the License at
    + *
    + *  http://www.apache.org/licenses/LICENSE-2.0
    + *
    + *  Unless required by applicable law or agreed to in writing,
    + *  software distributed under the License is distributed on an
    + *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    + *  KIND, either express or implied.  See the License for the
    + *  specific language governing permissions and limitations
    + *  under the License.
    + */
    +'use strict';
    +
    +const DriverRemoteConnection = require('./driver-remote-connection');
    +const Bytecode = require('../process/bytecode');
    +
    +class Client {
    +  /**
    +   * Creates a new instance of DriverRemoteConnection.
    +   * @param {String} url The resource uri.
    +   * @param {Object} [options] The connection options.
    +   * @param {Array} [options.ca] Trusted certificates.
    +   * @param {String|Array|Buffer} [options.cert] The certificate key.
    +   * @param {String} [options.mimeType] The mime type to use.
    +   * @param {String|Buffer} [options.pfx] The private key, certificate, and CA certs.
    +   * @param {GraphSONReader} [options.reader] The reader to use.
    +   * @param {Boolean} [options.rejectUnauthorized] Determines whether to verify or not
the server certificate.
    +   * @param {String} [options.traversalSource] The traversal source. Defaults to: 'g'.
    +   * @param {GraphSONWriter} [options.writer] The writer to use.
    +   * @param {Authenticator} [options.authenticator] The authentication handler to use.
    +   * @constructor
    +   */
    +  constructor(url, options) {
    +    this._options = options;
    +    this._connection = new DriverRemoteConnection(url, options);
    +  }
    +
    +  /**
    +   * Opens the underlying connection to the Gremlin Server, if it's not already opened.
    +   * @returns {Promise}
    +   */
    +  open() {
    +    return this._connection.open();
    +  }
    +
    +  /**
    +   * Send a request to the Gremlin Server, can send a script or bytecode steps.
    +   * @param {Bytecode|string} message The bytecode or script to send
    +   * @param {Object} bindings The script bindings, if any.
    +   * @returns {Promise}
    +   */
    +  submit(message, bindings) {
    +    if (typeof message === 'string' || message instanceof String) {
    +      const args = {
    +        'gremlin': message,
    +        'bindings': bindings,
    --- End diff --
    
    I think bindings need to be serialized.
    
    Currently, I think it will only work with json supported types (boolean, number, strings),
but it should work with any type supported by GraphSON2.


> Provide a way to submit scripts to the server in gremlin-javascript
> -------------------------------------------------------------------
>
>                 Key: TINKERPOP-1959
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1959
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: javascript
>    Affects Versions: 3.2.8
>            Reporter: stephen mallette
>            Priority: Critical
>
> It is currently only possible to submit bytecode based requests to the server with gremlin-javascript.
We should also provide some means for submitting scripts.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message