Search in sources :

Example 1 with Scope

use of com.bluenimble.platform.api.ApiRequest.Scope in project serverless by bluenimble.

the class DefaultApiServiceValidator method valueOf.

public Object valueOf(String name, JsonObject fieldSpec, ApiRequest request, ApiConsumer consumer, Map<String, Object> data) {
    if (data != null) {
        return data.get(name);
    }
    Object value = null;
    String s = fieldSpec.getString(Spec.Scope);
    if (Lang.isNullOrEmpty(s)) {
        s = DefaultScope;
    }
    Object defaultValue = fieldSpec.get(Spec.Value);
    Scope scope = null;
    s = s.trim();
    for (int i = 0; i < s.length(); i++) {
        char sc = s.charAt(i);
        if (ConsumerScope == sc) {
            if (defaultValue != null) {
                value = consumer.get(defaultValue.toString());
            }
            if (value != null) {
                request.set(name, value);
            }
            continue;
        }
        scope = Scopes.get(String.valueOf(sc));
        if (scope == null) {
            continue;
        }
        value = request.get(name, scope);
        if (value != null) {
            break;
        }
    }
    if (value == null) {
        value = defaultValue;
        if (value != null) {
            request.set(name, value);
        }
    }
    return value;
}
Also used : Scope(com.bluenimble.platform.api.ApiRequest.Scope) JsonObject(com.bluenimble.platform.json.JsonObject)

Aggregations

Scope (com.bluenimble.platform.api.ApiRequest.Scope)1 JsonObject (com.bluenimble.platform.json.JsonObject)1