/* * @description Updates a Salesforce record. * * @param record The record * @return an empty string * @throws SalesforceApiException if request fails */ public IEnumerator update(SalesforceRecord record) { assertUserIsLoggedIn(); JSONObject recordJson = record.toJson(); recordJson.Remove("Id"); string url = getDataServiceUrl() + "sobjects/" + record.getSObjectName() + "/" + record.id; using (UnityWebRequest request = getBaseRequest(url, "PATCH")) { request.uploadHandler = new UploadHandlerRaw(System.Text.Encoding.UTF8.GetBytes(recordJson.ToString())); yield return(request.SendWebRequest()); if (request.isNetworkError || request.isHttpError) { logResponseError(request); throw new SalesforceApiException("Salesforce update error: " + request.error); } else { logResponseSuccess(request); yield return(request.downloadHandler.text); } } }
/* * @description Deletes a Salesforce record. * * @param record The record * @return an empty string * @throws SalesforceApiException if request fails */ public IEnumerator delete(SalesforceRecord record) { assertUserIsLoggedIn(); string url = getDataServiceUrl() + "sobjects/" + record.getSObjectName() + "/" + record.id; using (UnityWebRequest request = getBaseRequest(url, "DELETE")) { yield return(request.SendWebRequest()); if (request.isNetworkError || request.isHttpError) { logResponseError(request); throw new SalesforceApiException("Salesforce delete error: " + request.error); } else { logResponseSuccess(request); yield return(request.downloadHandler.text); } } }
/* * @description Executes a SOQL query against Salesforce and returns records of a given type * * @param query The SOQL query to be executed * @return a list of records of the given type * @throws SalesforceApiException if query fails */ public IEnumerator query <T>(string query) where T : SalesforceRecord, new() { assertUserIsLoggedIn(); string url = getDataServiceUrl() + "query?q=" + UnityWebRequest.EscapeURL(query); using (UnityWebRequest request = getBaseRequest(url, "GET")) { yield return(request.SendWebRequest()); if (request.isNetworkError || request.isHttpError) { logResponseError(request); throw new SalesforceApiException("Salesforce query error: " + request.error); } else { logResponseSuccess(request); JSONObject json = JSONObject.Parse(request.downloadHandler.text); JSONArray recordsJson = json.GetArray("records"); yield return(SalesforceRecord.parseFromJsonArray <T>(recordsJson)); } } }