List of usage examples for com.google.gwt.http.client URL encode
public static String encode(String decodedURL)
From source file:org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyEnforcementServiceImpl.java
License:Open Source License
/** * Verify./*www . j a v a 2s.c o m*/ * * @param opKey * the op key * @param policyTypes * the policy types * @param credentials * the credentials * @param subjectTypes * the subject types * @param extendedInfo * the extended info * @param accessControlObjects * the access control objects * @param resourceType * the resource type * @param callback * the callback * @see org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyEnforcementService#verify(org.ebayopensource.turmeric.policy.adminui.client.model.policy.OperationKey, * java.util.List, java.util.Map, java.util.List, java.util.Map, * java.util.List, java.lang.String, * com.google.gwt.user.client.rpc.AsyncCallback) */ @Override public void verify(OperationKey opKey, List<String> policyTypes, Map<String, String> credentials, List<String[]> subjectTypes, Map<String, String> extendedInfo, List<String> accessControlObjects, String resourceType, final AsyncCallback<VerifyAccessResponse> callback) { String url = BASE_POLICY_URL + "?" + getPartialUrl("verifyAccess", namespaces, RequestFormat.NV); //encode body of the request if (opKey != null) { url += OperationKeyConverter.toNV(opKey); if (policyTypes != null) { int i = 0; for (String pt : policyTypes) { url += "&ns1:policyType(" + i + ")=" + pt; i++; } } if (credentials != null) { int i = 0; for (Map.Entry<String, String> e : credentials.entrySet()) { url += "&ns1:credential(" + i + ").ns1:key=" + e.getKey(); url += "&ns1:credential(" + i + ").ns1:value=" + e.getValue(); i++; } } if (subjectTypes != null) { int i = 0; for (String[] st : subjectTypes) { if (st != null) { url += (st[0] == null ? "" : "&ns1:subject(" + i + ").ns1:domain=" + st[0]); url += (st[1] == null ? "" : "&ns1:subject(" + i + ").ns1:value=" + st[1]); } i++; } } if (extendedInfo != null) { int i = 0; for (Map.Entry<String, String> e : extendedInfo.entrySet()) { url += "&ns1:extendedInfo(" + i + ").ns1:key=" + e.getKey(); url += "&ns1:extendedInfo(" + i + ").ns1:value=" + e.getValue(); i++; } } if (accessControlObjects != null) { int i = 0; for (String s : accessControlObjects) { url += "&ns1:accessControlObject(" + i + ")=" + s; i++; } } if (resourceType != null) { url += "&ns1:resourceType=" + resourceType; } final RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url)); setSecurityHeaders(builder); // System.err.println("builder = "+builder.getUrl()); try { builder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable err) { callback.onFailure(err); } public void onResponseReceived(Request request, Response response) { // System.err.println("response = "+response.getText()); if (response.getStatusCode() != Response.SC_OK) { callback.onFailure(new Throwable( PolicyAdminUIUtil.constants.error() + " " + response.getStatusCode())); } else if (response.getHeader(ERROR_HEADER) != null && response.getHeader(ERROR_HEADER).length() > 0) { callback.onFailure(getErrorAsThrowable(VerifyAccessResponseJS.NAME, response)); } else { //convert response.getText() to JSON VerifyAccessResponse accessResponse = VerifyAccessResponseJS .fromJSON(response.getText()); callback.onSuccess(accessResponse); } } }); } catch (RequestException x) { callback.onFailure(x); } } }
From source file:org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryServiceImpl.java
License:Open Source License
/** * Creates the subject groups./*from www . ja v a 2s .co m*/ * * @param groups * the groups * @param callback * the callback * @see org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryService#createSubjectGroups(java.util.List, * com.google.gwt.user.client.rpc.AsyncCallback) */ @Override public void createSubjectGroups(final List<SubjectGroup> groups, final AsyncCallback<CreateSubjectGroupsResponse> callback) { if (groups == null) return; String url = BASE_POLICY_URL + "?" + getPartialUrl("createSubjectGroups", namespaces, RequestFormat.NV); if (groups != null) { int i = 0; for (SubjectGroup g : groups) { url += (g.getName() == null ? "" : "&ns1:subjectGroups(" + i + ").@SubjectGroupName=" + g.getName().trim()); url += (g.getType() == null ? "" : "&ns1:subjectGroups(" + i + ").@SubjectType=" + g.getType().toString()); url += (g.getDescription() == null ? "" : "&ns1:subjectGroups(" + i + ").@Description=" + g.getDescription()); url += (g.getGroupCalculator() == null ? "" : "&ns1:subjectGroups(" + i + ").@SubjectGroupCalculator=" + g.getGroupCalculator()); // Subjects must have name && type? if (g.getSubjects() != null) { int j = 0; for (String s : g.getSubjects()) { url += "&ns1:subjectGroups(" + i + ").ns1:Subject(" + j + ").@SubjectName=" + s; url += "&ns1:subjectGroups(" + i + ").ns1:Subject(" + j + ").@SubjectType=" + g.getType().toString(); j++; } } i++; } RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url)); setSecurityHeaders(builder); try { builder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable err) { callback.onFailure(err); } public void onResponseReceived(Request request, Response response) { if (response.getStatusCode() != Response.SC_OK) { callback.onFailure(new Throwable( PolicyAdminUIUtil.constants.error() + " " + response.getStatusCode())); } else if (response.getHeader(ERROR_HEADER) != null && response.getHeader(ERROR_HEADER).length() > 0) { callback.onFailure(getErrorAsThrowable(CreateSubjectGroupsResponseJS.NAME, response)); } else { // convert response.getText() to JSON CreateSubjectGroupsResponse createResponse = CreateSubjectGroupsResponseJS .fromJSON(response.getText()); if (createResponse.isErrored()) callback.onFailure( getErrorAsThrowable(CreateSubjectGroupsResponseJS.NAME, response)); else callback.onSuccess(createResponse); } } }); } catch (RequestException x) { callback.onFailure(x); } } }
From source file:org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryServiceImpl.java
License:Open Source License
/** * Delete policy.//w ww. j a v a 2 s . c o m * * @param key * the key * @param callback * the callback * @see org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryService#deletePolicy(org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryService.DeletePolicyRequest, * com.google.gwt.user.client.rpc.AsyncCallback) */ @Override public void deletePolicy(final PolicyKey key, final AsyncCallback<DeletePolicyResponse> callback) { if (key == null) { callback.onFailure(null); } else { String url = BASE_POLICY_URL + "?" + getPartialUrl("deletePolicy", namespaces, RequestFormat.NV); url += (key.getId() == null ? "" : "&ns1:policyKey.ns1:policyId=" + key.getId().toString()); url += (key.getName() == null ? "" : "&ns1:policyKey.ns1:policyName=" + key.getName().trim()); url += (key.getType() == null ? "" : "&ns1:policyKey.ns1:policyType=" + key.getType().toString().toUpperCase()); RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url)); setSecurityHeaders(builder); try { builder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable err) { callback.onFailure(err); } public void onResponseReceived(Request request, Response response) { if (response.getStatusCode() != Response.SC_OK) { callback.onFailure(new Throwable( PolicyAdminUIUtil.constants.error() + " " + response.getStatusCode())); } else if (response.getHeader(ERROR_HEADER) != null && response.getHeader(ERROR_HEADER).length() > 0) { callback.onFailure(getErrorAsThrowable(DeletePolicyResponseJS.NAME, response)); } else { // convert response.getText() to JSON DeletePolicyResponse deleteResponse = DeletePolicyResponseJS .fromJSON(response.getText()); if (deleteResponse.isErrored()) callback.onFailure(getErrorAsThrowable(DeletePolicyResponseJS.NAME, response)); else callback.onSuccess(deleteResponse); } } }); } catch (RequestException x) { callback.onFailure(x); } } }
From source file:org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryServiceImpl.java
License:Open Source License
/** * Delete subject groups./*from w w w .j a v a 2s. c o m*/ * * @param keys * the keys * @param callback * the callback * @see org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryService#deleteSubjectGroup(org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryService.DeleteSubjectGroupRequest, * com.google.gwt.user.client.rpc.AsyncCallback) */ @Override public void deleteSubjectGroups(final List<SubjectGroupKey> keys, final AsyncCallback<DeleteSubjectGroupResponse> callback) { if (keys == null) { return; } String url = BASE_POLICY_URL + "?" + getPartialUrl("deleteSubjectGroups", namespaces, RequestFormat.NV); int i = 0; for (SubjectGroupKey key : keys) { url += (key.getId() == null ? "" : "&ns1:subjectGroupKey(" + i + ").ns1:subjectGroupId=" + key.getId().toString()); url += (key.getName() == null ? "" : "&ns1:subjectGroupKey(" + i + ").ns1:subjectGroupName=" + key.getName().trim()); url += (key.getType() == null ? "" : "&ns1:subjectGroupKey(" + i + ").ns1:subjectType=" + key.getType().toString()); i++; } RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url)); setSecurityHeaders(builder); try { builder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable err) { callback.onFailure(err); } public void onResponseReceived(Request request, Response response) { if (response.getStatusCode() != Response.SC_OK) { callback.onFailure(new Throwable( PolicyAdminUIUtil.constants.error() + " " + response.getStatusCode())); } else if (response.getHeader(ERROR_HEADER) != null && response.getHeader(ERROR_HEADER).length() > 0) { callback.onFailure(getErrorAsThrowable(DeleteSubjectGroupResponseJS.NAME, response)); } else { // convert response.getText() to JSON DeleteSubjectGroupResponse delResponse = DeleteSubjectGroupResponseJS .fromJSON(response.getText()); if (delResponse.isErrored()) callback.onFailure(getErrorAsThrowable(DeleteSubjectGroupResponseJS.NAME, response)); else callback.onSuccess(delResponse); } } }); } catch (RequestException x) { callback.onFailure(x); } }
From source file:org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryServiceImpl.java
License:Open Source License
/** * Disable policy.// w w w.j a va 2s .com * * @param key * the key * @param callback * the callback * @see org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryService#disablePolicy(org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryService.DisablePolicyRequest, * com.google.gwt.user.client.rpc.AsyncCallback) */ @Override public void disablePolicy(final PolicyKey key, final AsyncCallback<DisablePolicyResponse> callback) { if (key == null) { callback.onFailure(null); } else { String url = BASE_POLICY_URL + "?" + getPartialUrl("disablePolicy", namespaces, RequestFormat.NV); url += (key.getId() == null ? "" : "&ns1:policyKey.ns1:policyId=" + key.getId().toString()); url += (key.getName() == null ? "" : "&ns1:policyKey.ns1:policyName=" + key.getName().trim()); url += (key.getType() == null ? "" : "&ns1:policyKey.ns1:policyType=" + key.getType().toString().toUpperCase()); RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url)); setSecurityHeaders(builder); try { builder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable err) { callback.onFailure(err); } public void onResponseReceived(Request request, Response response) { if (response.getStatusCode() != Response.SC_OK) { callback.onFailure(new Throwable( PolicyAdminUIUtil.constants.error() + " " + response.getStatusCode())); } else if (response.getHeader(ERROR_HEADER) != null && response.getHeader(ERROR_HEADER).length() > 0) { callback.onFailure(getErrorAsThrowable(DisablePolicyResponseJS.NAME, response)); } else { // convert response.getText() to JSON DisablePolicyResponse enableResponse = DisablePolicyResponseJS .fromJSON(response.getText()); if (enableResponse.isErrored()) callback.onFailure(getErrorAsThrowable(DisablePolicyResponseJS.NAME, response)); else callback.onSuccess(enableResponse); } } }); } catch (RequestException x) { callback.onFailure(x); } } }
From source file:org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryServiceImpl.java
License:Open Source License
/** * Enable policy.//from ww w . jav a 2 s. c o m * * @param key * the key * @param callback * the callback * @see org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryService#enablePolicy(org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryService.EnablePolicyRequest, * com.google.gwt.user.client.rpc.AsyncCallback) */ @Override public void enablePolicy(final PolicyKey key, final AsyncCallback<EnablePolicyResponse> callback) { if (key == null) { callback.onFailure(null); } else { String url = BASE_POLICY_URL + "?" + getPartialUrl("enablePolicy", namespaces, RequestFormat.NV); url += (key.getId() == null ? "" : "&ns1:policyKey.ns1:policyId=" + key.getId().toString()); url += (key.getName() == null ? "" : "&ns1:policyKey.ns1:policyName=" + key.getName().trim()); url += (key.getType() == null ? "" : "&ns1:policyKey.ns1:policyType=" + key.getType().toString().toUpperCase()); RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url)); setSecurityHeaders(builder); try { builder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable err) { callback.onFailure(err); } public void onResponseReceived(Request request, Response response) { if (response.getStatusCode() != Response.SC_OK) { callback.onFailure(new Throwable( PolicyAdminUIUtil.constants.error() + " " + response.getStatusCode())); } else if (response.getHeader(ERROR_HEADER) != null && response.getHeader(ERROR_HEADER).length() > 0) { callback.onFailure(getErrorAsThrowable(EnablePolicyResponseJS.NAME, response)); } else { // convert response.getText() to JSON EnablePolicyResponse enableResponse = EnablePolicyResponseJS .fromJSON(response.getText()); if (enableResponse.isErrored()) callback.onFailure(getErrorAsThrowable(EnablePolicyResponseJS.NAME, response)); else callback.onSuccess(enableResponse); } } }); } catch (RequestException x) { callback.onFailure(x); } } }
From source file:org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryServiceImpl.java
License:Open Source License
/** * Gets the resources./*from w w w . j a v a 2s .co m*/ * * @param keys * the keys * @param callback * the callback * @return the resources * @see org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryService#getResources(org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryService.GetResourcesRequest, * com.google.gwt.user.client.rpc.AsyncCallback) */ @Override public void getResources(final List<ResourceKey> keys, final AsyncCallback<GetResourcesResponse> callback) { if (keys == null) return; String url = BASE_POLICY_URL + "?" + getPartialUrl("getResources", namespaces, RequestFormat.NV); int i = 0; for (ResourceKey key : keys) { url += (key.getId() == null ? "" : "&ns1:resourceKey(" + i + ").ns1:resourceId=" + key.getId().toString()); url += (key.getName() == null || key.getName().trim().isEmpty() ? "" : "&ns1:resourceKey(" + i + ").ns1:resourceName=" + key.getName().trim()); url += (key.getType() == null || key.getType().trim().isEmpty() ? "" : "&ns1:resourceKey(" + i + ").ns1:resourceType=" + key.getType().toString().toUpperCase()); i++; } RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url)); setSecurityHeaders(builder); try { builder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable err) { callback.onFailure(err); } public void onResponseReceived(Request request, Response response) { if (response.getStatusCode() != Response.SC_OK) { callback.onFailure(new Throwable( PolicyAdminUIUtil.constants.error() + " " + response.getStatusCode())); } else if (response.getHeader(ERROR_HEADER) != null && response.getHeader(ERROR_HEADER).length() > 0) { callback.onFailure(getErrorAsThrowable(GetResourcesResponseJS.NAME, response)); } else { // convert response.getText() to JSON GetResourcesResponse resourcesResponse = GetResourcesResponseJS .fromJSON(response.getText()); if (resourcesResponse.isErrored()) callback.onFailure(getErrorAsThrowable(GetResourcesResponseJS.NAME, response)); else callback.onSuccess(resourcesResponse); } } }); } catch (RequestException x) { callback.onFailure(x); } }
From source file:org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryServiceImpl.java
License:Open Source License
/** * Find policies./*from ww w .j a v a 2 s . c o m*/ * * @param sinceLastModifiedTime * the since last modified time * @param keys * the keys * @param resKeys * the res keys * @param opKeys * the op keys * @param subjectKeys * the subject keys * @param subjectGroupKeys * the subject group keys * @param outputSelector * the output selector * @param condition * the condition * @param callback * the callback * @see org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryService#getPoliciesByKey(org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyKey, * com.google.gwt.user.client.rpc.AsyncCallback) */ @Override public void findPolicies(Long sinceLastModifiedTime, List<PolicyKey> keys, List<ResourceKey> resKeys, List<OperationKey> opKeys, List<SubjectKey> subjectKeys, List<SubjectGroupKey> subjectGroupKeys, PolicyOutputSelector outputSelector, QueryCondition condition, final AsyncCallback<GetPoliciesResponse> callback) { String url = BASE_POLICY_URL + "?" + getPartialUrl("findPolicies", namespaces, RequestFormat.NV); // sinceLastModifiedTime is measured as the milliseconds since the // epoch(GMT) // "YYYY-MM-DDThh:mm:ssZ" eg 2002-05-30T09:30:10Z if (sinceLastModifiedTime != null) { String time = PolicyAdminUIUtil.xsDateTimeFormat.format(new Date(sinceLastModifiedTime.longValue())); url += "&ns1:lastUpdatedDate=" + URL.encodeQueryString(time); } // find by a particular policy type // if(keys.size()==1){ url = createPolicyKeyRequest(keys, url); // }else{ // //find with all policy types // url = createPolicyKeyForAllRequest(keys, subjectGroupKeys, url); // } url = createResourceKeyRequest(resKeys, url); url = createOperationKeyRequest(opKeys, url); url = createSubjectKeyRequest(subjectKeys, url); url = createSubjectGroupKeyRequest(subjectGroupKeys, url); // is there an outputselector? if (outputSelector != null) { url += "&ns1:outputSelector=" + outputSelector.toString(); } // is there a query condition? if (condition != null) { url += (condition.getResolution() == null ? "" : "&ns1:queryCondition.ns1:resolution=" + condition.getResolution().toString()); if (condition.getQueries() != null) { int i = 0; for (QueryCondition.Query q : condition.getQueries()) { url += "&ns1:queryCondition.ns1:query(" + i + ").ns1:QueryType=" + q.getType().toString(); url += "&ns1:queryCondition.ns1:query(" + i + ").ns1:QueryValue=" + q.getValue().toString(); } } } RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url)); setSecurityHeaders(builder); try { builder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable err) { callback.onFailure(err); } public void onResponseReceived(Request request, Response response) { if (response.getStatusCode() != Response.SC_OK) { callback.onFailure(new Throwable( PolicyAdminUIUtil.constants.error() + " " + response.getStatusCode())); } else if (response.getHeader(ERROR_HEADER) != null && response.getHeader(ERROR_HEADER).length() > 0) { callback.onFailure(getErrorAsThrowable(GetPoliciesResponseJS.NAME, response)); } else { // convert response.getText() to JSON GetPoliciesResponse findResponse = GetPoliciesResponseJS.fromJSON(response.getText()); if (findResponse.isErrored()) { callback.onFailure(getErrorAsThrowable(GetPoliciesResponseJS.NAME, response)); } else callback.onSuccess(findResponse); } } }); } catch (RequestException x) { callback.onFailure(x); } }
From source file:org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryServiceImpl.java
License:Open Source License
/** * Creates internal subjects based on external ones. * /* w w w .j a v a2 s. c om*/ * @param subjects * the subjects * @param callback * the callback * @see org.ebayopensource.turmeric.policy.adminui.client.model.policy. * PolicyQueryService * #createSubjects(List<org.ebayopensource.turmeric.policy.adminui * .client.model.policy.Subjects>, * com.google.gwt.user.client.rpc.AsyncCallback) */ @Override public void createSubjects(final List<Subject> subjects, final AsyncCallback<CreateSubjectsResponse> callback) { if (subjects == null) { return; } String url = BASE_POLICY_URL + "?" + getPartialUrl("createSubjects", namespaces, RequestFormat.NV); url += SubjectsConverter.toNV(subjects); RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url)); setSecurityHeaders(builder); try { builder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable err) { callback.onFailure(err); } public void onResponseReceived(Request request, Response response) { if (response.getStatusCode() != Response.SC_OK) { callback.onFailure(new Throwable( PolicyAdminUIUtil.constants.error() + " " + response.getStatusCode())); } else if (response.getHeader(ERROR_HEADER) != null && response.getHeader(ERROR_HEADER).length() > 0) { callback.onFailure(getErrorAsThrowable(CreateSubjectsResponseJS.NAME, response)); } else { // convert response.getText() to JSON CreateSubjectsResponse createResponse = CreateSubjectsResponseJS .fromJSON(response.getText()); if (createResponse.isErrored()) callback.onFailure(getErrorAsThrowable(CreateSubjectsResponseJS.NAME, response)); else callback.onSuccess(createResponse); } } }); } catch (RequestException x) { callback.onFailure(x); } }
From source file:org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryServiceImpl.java
License:Open Source License
/** * Creates the policy./*from w w w .j av a2 s . c o m*/ * * @param policy * the policy * @param callback * the callback * @see org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryService#createPolicy(org.org.ebayopensource.turmeric.monitoring.client.model.policy.GenericPolicy, * com.google.gwt.user.client.rpc.AsyncCallback) */ @Override public void createPolicy(final GenericPolicy policy, final AsyncCallback<CreatePolicyResponse> callback) { if (policy == null) { return; } String url = BASE_POLICY_URL + "?" + getPartialUrl("createPolicy", namespaces, RequestFormat.NV); url += GenericPolicyConverter.toNV(policy); RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url)); setSecurityHeaders(builder); try { builder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable err) { callback.onFailure(err); } public void onResponseReceived(Request request, Response response) { if (response.getStatusCode() != Response.SC_OK) { callback.onFailure(new Throwable( PolicyAdminUIUtil.constants.error() + " " + response.getStatusCode())); } else if (response.getHeader(ERROR_HEADER) != null && response.getHeader(ERROR_HEADER).length() > 0) { callback.onFailure(getErrorAsThrowable(CreatePolicyResponseJS.NAME, response)); } else { // convert response.getText() to JSON CreatePolicyResponse createResponse = CreatePolicyResponseJS.fromJSON(response.getText()); if (createResponse.isErrored()) { callback.onFailure(getErrorAsThrowable(CreatePolicyResponseJS.NAME, response)); } else callback.onSuccess(createResponse); } } }); } catch (RequestException x) { callback.onFailure(x); } }