Search in sources :

Example 26 with JsonObject

use of com.bluenimble.platform.json.JsonObject in project serverless by bluenimble.

the class DatabaseApiRequestTrack method tag.

@Override
public void tag(String name, String reason) {
    if (Lang.isNullOrEmpty(name)) {
        return;
    }
    JsonObject tag = Json.getObject(track, Fields.Tag.class.getSimpleName().toLowerCase());
    if (tag == null) {
        tag = new JsonObject();
        track.set(Fields.Tag.class.getSimpleName().toLowerCase(), tag);
    }
    tag.set(Fields.Tag.Name, name);
    tag.set(Fields.Tag.Reason, reason);
}
Also used : JsonObject(com.bluenimble.platform.json.JsonObject)

Example 27 with JsonObject

use of com.bluenimble.platform.json.JsonObject in project serverless by bluenimble.

the class SimplePostRequest method main.

public static void main(String[] args) throws Exception {
    JsonObject spec = (JsonObject) new JsonObject().set("url", "http://discuss.bluenimble.com/api/users").set("headers", new JsonObject().set("Content-Type", "application/json").set("Authorization", "Token 3NpuOJs7BBYcUVyKswLQ1d7ETfvzTsJixSHZcFSm")).set("data", new JsonObject().set("data", new JsonObject().set("attributes", new JsonObject().set("username", "Simo").set("email", "loukili.mohammed@gmail.com").set("password", "Alph@2016"))));
    HttpResponse response = Http.post(spec, null);
    System.out.println("Status: " + response.getStatus());
    HttpMessageBody body = response.getBody();
    if (body == null || body.count() == 0) {
        throw new Exception("response body is empty");
    }
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    body.dump(out, "UTF-8", null);
    System.out.println(new JsonObject(new String(out.toByteArray())));
}
Also used : HttpMessageBody(com.bluenimble.platform.http.HttpMessageBody) JsonObject(com.bluenimble.platform.json.JsonObject) HttpResponse(com.bluenimble.platform.http.response.HttpResponse) ByteArrayOutputStream(java.io.ByteArrayOutputStream)

Example 28 with JsonObject

use of com.bluenimble.platform.json.JsonObject in project serverless by bluenimble.

the class Http method request.

private static HttpRequest request(String verb, JsonObject spec, HttpRequestVisitor visitor) throws HttpClientException {
    verb = verb.toUpperCase();
    Class<? extends AbstractHttpRequest> requestClass = Requests.get(verb);
    if (requestClass == null) {
        throw new HttpClientException("unsupported http method " + verb);
    }
    String url = Json.getString(spec, Spec.Url);
    AbstractHttpRequest request;
    try {
        request = requestClass.getConstructor(new Class[] { HttpEndpoint.class }).newInstance(HttpUtils.createEndpoint(new URI(url)));
    } catch (Exception ex) {
        throw new HttpClientException(ex.getMessage(), ex);
    }
    request.setVisitor(visitor);
    // add timeouts
    JsonObject oTimeouts = Json.getObject(spec, Spec.timeouts.class.getSimpleName());
    if (oTimeouts != null && !oTimeouts.isEmpty()) {
        int connectTimeout = Json.getInteger(oTimeouts, Spec.timeouts.Connect, 0);
        if (connectTimeout > 100) {
            request.setConnectTimeout(connectTimeout);
        }
        int readTimeout = Json.getInteger(oTimeouts, Spec.timeouts.Read, 0);
        if (readTimeout > 100) {
            request.setReadTimeout(readTimeout);
        }
    }
    // add proxy
    JsonObject oProxy = Json.getObject(spec, Spec.proxy.class.getSimpleName());
    if (oProxy != null && !oProxy.isEmpty()) {
        Proxy.Type proxyType = Proxy.Type.valueOf(Json.getString(oProxy, Spec.proxy.Type, Proxy.Type.HTTP.name()).toUpperCase());
        int proxyPort = Json.getInteger(oProxy, Spec.proxy.Port, 8080);
        Proxy proxy = new Proxy(proxyType, new InetSocketAddress(Json.getString(oProxy, Spec.proxy.Endpoint), proxyPort));
        request.setProxy(proxy);
    }
    String contentType = null;
    // add headers
    JsonObject headers = Json.getObject(spec, Spec.Headers);
    if (headers != null && !headers.isEmpty()) {
        List<HttpHeader> hHeaders = new ArrayList<HttpHeader>();
        request.setHeaders(hHeaders);
        Iterator<String> keys = headers.keys();
        while (keys.hasNext()) {
            String h = keys.next();
            String hv = String.valueOf(headers.get(h));
            if (HttpHeaders.CONTENT_TYPE.toUpperCase().equals(h.toUpperCase())) {
                contentType = hv;
            } else {
                hHeaders.add(new HttpHeaderImpl(h, hv));
            }
        }
        headers.remove(HttpHeaders.CONTENT_TYPE);
    }
    request.setContentType(contentType);
    // add params
    JsonObject data = Json.getObject(spec, Spec.Data);
    if (data != null && !data.isEmpty()) {
        if (ContentTypes.Json.equals(contentType)) {
            HttpMessageBody body = new HttpMessageBodyImpl();
            request.setBody(body);
            body.add(new StringHttpMessageBodyPart(data.toString()));
        } else {
            List<HttpParameter> hParams = new ArrayList<HttpParameter>();
            request.setParameters(hParams);
            Iterator<String> keys = data.keys();
            while (keys.hasNext()) {
                String p = keys.next();
                hParams.add(new HttpParameterImpl(p, data.get(p)));
            }
        }
    }
    return request;
}
Also used : HttpMessageBody(com.bluenimble.platform.http.HttpMessageBody) InetSocketAddress(java.net.InetSocketAddress) StringHttpMessageBodyPart(com.bluenimble.platform.http.impls.StringHttpMessageBodyPart) ArrayList(java.util.ArrayList) JsonObject(com.bluenimble.platform.json.JsonObject) URI(java.net.URI) HttpHeaderImpl(com.bluenimble.platform.http.impls.HttpHeaderImpl) HttpParameter(com.bluenimble.platform.http.HttpParameter) HttpClientException(com.bluenimble.platform.http.HttpClientException) HttpEndpoint(com.bluenimble.platform.http.HttpEndpoint) HttpParameterImpl(com.bluenimble.platform.http.impls.HttpParameterImpl) Proxy(java.net.Proxy) HttpClientException(com.bluenimble.platform.http.HttpClientException) HttpHeader(com.bluenimble.platform.http.HttpHeader) AbstractHttpRequest(com.bluenimble.platform.http.request.impls.AbstractHttpRequest) HttpMessageBodyImpl(com.bluenimble.platform.http.impls.HttpMessageBodyImpl)

Example 29 with JsonObject

use of com.bluenimble.platform.json.JsonObject in project serverless by bluenimble.

the class SimpleApiResponse method error.

@Override
public ApiResponse error(Status status, Object message) {
    this.status = status;
    error = new JsonObject();
    error.set(RequestID, id);
    error.set(Error.Code, status.getCode());
    if (message != null && (message instanceof Object[])) {
        Object[] aMessage = (Object[]) message;
        error.set(Error.Message, aMessage[0]);
        error.set(Error.Trace, aMessage[1]);
    } else {
        error.set(Error.Message, message);
    }
    return this;
}
Also used : JsonObject(com.bluenimble.platform.json.JsonObject) JsonObject(com.bluenimble.platform.json.JsonObject)

Example 30 with JsonObject

use of com.bluenimble.platform.json.JsonObject in project serverless by bluenimble.

the class JsonFilter method get.

@Override
public Object get(String field) {
    Object o = source.get(field);
    if (!(o instanceof JsonObject)) {
        return new ConditionImpl(field, Operator.eq, o);
    }
    JsonObject spec = (JsonObject) o;
    if (Conjunctions.contains(field)) {
        return new JsonFilter(Conjunction.valueOf(field), spec);
    }
    return new ConditionImpl(field, Operator.valueOf(Json.getString(spec, JsonQuery.Spec.Operator, Operator.eq.name())), spec.get(JsonQuery.Spec.Value));
}
Also used : JsonObject(com.bluenimble.platform.json.JsonObject) JsonObject(com.bluenimble.platform.json.JsonObject)

Aggregations

JsonObject (com.bluenimble.platform.json.JsonObject)230 ApiServiceExecutionException (com.bluenimble.platform.api.ApiServiceExecutionException)40 DatabaseObject (com.bluenimble.platform.db.DatabaseObject)37 JsonArray (com.bluenimble.platform.json.JsonArray)37 JsonApiOutput (com.bluenimble.platform.api.impls.JsonApiOutput)34 Database (com.bluenimble.platform.db.Database)29 ApiSpace (com.bluenimble.platform.api.ApiSpace)26 File (java.io.File)25 ApiAccessDeniedException (com.bluenimble.platform.api.ApiAccessDeniedException)23 Map (java.util.Map)22 IOException (java.io.IOException)20 CommandExecutionException (com.bluenimble.platform.cli.command.CommandExecutionException)17 JsonQuery (com.bluenimble.platform.db.query.impls.JsonQuery)16 InputStream (java.io.InputStream)14 Date (java.util.Date)14 DefaultCommandResult (com.bluenimble.platform.cli.command.impls.DefaultCommandResult)13 ApiManagementException (com.bluenimble.platform.api.ApiManagementException)12 DefaultDatabaseObjectSerializer (com.bluenimble.platform.db.impls.DefaultDatabaseObjectSerializer)11 HashMap (java.util.HashMap)11 DatabaseException (com.bluenimble.platform.db.DatabaseException)9