Search code examples
parse-platformhttprequestresponseparse-cloud-code

Parse Response Variable Issues with HTTP Request and Cloud Code


I am trying to run an HTTP Request in an afterSave. It executes correctly, but im getting errors with the response variable I was told to put in the end.

Here is the code

Parse.Cloud.afterSave("ArtPiece", function(request) {
var artistURL = 'http://www.gallery-admin-dev.iartview.com/Gilmans/imageSave.php';

var artPiece = request.object;

if (typeof request.image === "undefined") {

    var pieceName = artPiece.get("piece_name");

    var url = artPiece.get("imageURL");

    Parse.Cloud.httpRequest({
        url: artistURL,
        params: {
          pieceName : pieceName,
          url : url
        },
        success: function(httpResponse) {
            response.success();
        },
        error: function(httpResponse) {
            response.error('Request failed with response code ' + httpResponse.status)
        }
    }); 
}
});

The problem is the success and error functions.

Things I have tried that have not worked: Putting response as a second parameter in the afterSave Call (it says can not call .success of an undefined variable)

Getting rid of the response lines of code (Result: success/error was not called)

Calling Response as its own function response('Request failed with response code ' + httpResponse.status) it just says response is undefined.

I dont really care about having any response or not, I just want the code to work properly.

How is this 'response' variable supposed to be set up?

Thank you!


Solution

  • There was an extra url in the parameters, a reference to a probably undefined artistURL...

    Parse.Cloud.afterSave("ArtPiece", function(request) {
        var artistURL = 'http://www.gallery-admin-dev.iartview.com/Gilmans/imageSave.php';
        var artPiece = request.object;
        if (typeof request.image === "undefined") {
            var pieceName = artPiece.get("piece_name");
            var url = artPiece.get("imageURL");
            var params = { pieceName : pieceName };
            return Parse.Cloud.httpRequest({ url: artistURL, params: params });
        }
    });