Parse Cloud "beforeSave" не сохраняет данные

Я использую метод parse beforeSave для сохранения заказа, вот код:

    //Before save an order - if finish - set priority to 0
    Parse.Cloud.beforeSave("UserToOrders", function(request, response) {
    Parse.Cloud.useMasterKey();
    var preStatus = request.object.get("OrderStatus");
    if (preStatus == "Finish") {
        request.object.set("Priority",0);
        console.log("beforeSave(\"UserToOrders\")\t Order (" + request.object.id + ") Status is 'Finish' So Priority set to '0'");
    }
    else {
        console.log("beforeSave(\"UserToOrders\")\t Order (" + request.object.id + ") Status Changed to: " + preStatus);
        request.object.set("OrderStatus",preStatus);

    }
    response.success();
});

Вот журнал:

I2016-03-09T20:56:05.779Z]v136 before_save triggered for UserToOrders for user pSi0iCGJJe:
  Input: {"original":{"ACL":{"*":{"read":true},"vxgEWFQ7eu":{"read":true,"write":true}},"OrderStatus":"Ready","OrderStatusActivity":"Active","ResturantID":"g1bzMQEXoj","TimeToBeReady":{"__type":"Date","iso":"2016-03-08T23:35:23.916Z"},"UserETA":{"__type":"Date","iso":"2016-03-08T23:35:23.916Z"},"UserID":"vxgEWFQ7eu","createdAt":"2016-03-08T21:06:06.605Z","objectId":"t3NoxcSp5z","updatedAt":"2016-03-08T21:40:59.538Z"},"update":{"OrderStatus":"Finish","objectId":"t3NoxcSp5z"}}
  Result: Update changed to {"OrderStatus":"Finish","Priority":0}

I2016-03-09T20:56:05.975Z]beforeSave("UserToOrders")     Order (t3NoxcSp5z) Status is 'Finish' So Priority set to '0'

но в БД ничего не меняется.

Что я скучаю?

Благодарю.

2 ответа

Я понял это. Это была проблема с разрешениями ACL. Заказ создается одним клиентом, а шанс - другим.

В var preStatus это то же значение, которое вы хотели сохранить...

var preStatus = request.object.get("OrderStatus");

и вы "сохраняете" одно и то же значение, вы можете просто удалить эту строку

request.object.set("OrderStatus",preStatus);

если это не то, что вы хотите, предоставьте журнал из "OrderStatus" = Готово

Другие вопросы по тегам