Beispiel #1
0
        /*
         * @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);
                }
            }
        }
Beispiel #2
0
        /*
         * @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);
                }
            }
        }
Beispiel #3
0
        /*
         * @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));
                }
            }
        }