Skip to content

AfterSave BeforDelete does not update mongodb record on Server but works on Local Machine #2658

Closed
@willysharp5

Description

@willysharp5

AfterSave and BeforeDelete triggers updates records on my mongodb server when I run it locally but when I run the same code in the cloud it fails to update the record.In both cases Mongodb is running on a server. I am also triggering the record change via IOS parse SDK. I also do find that in the IOS terminal that it tries to reconnect to the server a bunch of times before working, however when I run the parse server locally I do not get the reconnect issues.

Steps to reproduce

Create a Cloud Code for beforeSave and aftersave
Run a simple IOS update or delete of a Class

Please include a detailed list of steps that reproduce the issue. Include curl commands when applicable.

  1. ATERSAVE CODE
Parse.Cloud.afterSave("Wallet", function(request, response) {
    var currentUser = request.user; //pointer to user object
    var SyncTable = Parse.Object.extend("SyncTable");

    var query = new Parse.Query(SyncTable);
    query.equalTo("syncTableUser", currentUser);
    query.equalTo("tableName","User");
    query.first({
        useMasterKey: true,
        success: function(object) {
                // Successfully retrieved the object.
                object.increment("version");
                object.set("isDelete", false);
                object.save();
            },
            error: function(error) {
                //error
                console.log("Message Error: "+error);
            }
        });
});

BEFOREDELETE

Parse.Cloud.beforeDelete("Wallet", function(request, response) {
  var currentUser = request.user; //pointer to user object
  var SyncTable = Parse.Object.extend("SyncTable");

  var query = new Parse.Query(SyncTable);
  query.equalTo("tableName","Wallet");
  query.equalTo("syncTableUser", currentUser);
  query.first({
        success: function(object) {
                // Successfully retrieved the object.
                object.increment("version");
                object.set("isDelete", true);
                object.save();
            },
            error: function(error) {
                //error
            }
        });


  response.success();
});

SWIFT IOS CODE

let wallet = Wallet_P()
wallet.uuid = wallet_r.uuid
wallet.walletUser = PFUser.currentUser()
wallet.currency = wallet_r.currency
wallet.type = wallet_r.type
wallet.categoryType = wallet_r.categoryType

//Relation
let bank = Bank_P()
bank.uuid = wallet_r.walletBank?.uuid
bank.BankName = wallet_r.walletBank?.BankName
bank.balance = wallet_r.walletBank?.balance
bank.participants = wallet_r.walletBank?.participants
bank.totalAmount = wallet_r.walletBank?.totalAmount
wallet.walletBank = bank

wallet.saveEventually()

Expected Results

MongoDB For bothe Local and Server Calls
SyncTable Should be AfterSave
version : 1 (incremented by 1)
isDelete : True

SyncTable Should be BeforeDelete
version : 1 (incremented by 1)
isDelete : False

Actual Outcome

MongoDB for Server
SyncTable Should be AfterSave
version : 0
isDelete : False

SyncTable Should be BeforeDelete
version : 0
isDelete : False

MongoDB for Local
SyncTable Should be AfterSave
version : 1
isDelete : True

SyncTable Should be BeforeDelete
version : 1
isDelete : False

Environment Setup

  • Server
    • parse-server version: 2.2.17 running on Node version v4.2.6
    • Operating System: Ubuntu 14.04.4
    • Hardware: 512MB Memmory 20GB Hard Drive
    • Remote Server: Digital Ocean
  • Local
    • parse-server version: 2.2.17 running on Node version v4.2.6
    • Operating System: OSX EL Capitan version 10.11.6
    • Hardware: 2.8Ghz Core i7
    • Localhost: Local Host
  • Database
    • MongoDB version: 3.0.11
    • Storage engine: MMAPv1
    • Hardware: Ubuntu 14.04.4
    • Remote Server: Digital Ocean

Logs/Trace

2016-09-04T19:35:50.522Z - afterSave triggered for Wallet

Input: {"ACL":{"*":{"read":true},"2lKftPhsKz":{"write":true,"read":true}},"uuid":"ZAi5rZHa1W","walletUser":{"__type":"Pointer","className":"_User","objectId":"2lKftPhsKz"},"type":"Bank","currency":"USD -$","categoryType":"Bank","walletBank":{"__type":"Pointer","className":"Bank","objectId":"6TzvC1JCUV"},"createdAt":"2016-09-04T19:35:50.389Z","updatedAt":"2016-09-04T19:35:50.389Z","objectId":"TfKBK3WCiA"}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions