0
votes

I'm trying to determine the best approach for executing business logic in a Push adapter. I've run the example PushAdapter (Module_07_04_nativeAPIForiOSPush) successfully from my local environment, but, adding WL.Server.setActiveUser() throws an error.

I'm running the demo PushAdapter adapter locally in Worklight Studio (6.0.0.201309171829), added as the first line in the adapter:

WL.Server.setActiveUser("PushAppRealm",userId); ...

Deployed the adapter change, run with same params and get this error in the Worklight console:

Can't find method com.worklight.integration.js.JavaScriptIntegrationLibraryImplementation.setUserIdentity(string,string). (/integration.js#36) FWLSE0101E: Caused by: [project Module_07_04_nativeAPIForiOSPush]null

The adapter runs without any problems without this line. I'm trying to set the active user because I want to get the user's preferences next to determine business logic on whether to create the notification. Is there another approach?

I've also run this in a new workspace (after I applied the Fix Pack 1 to WL Studio 6), but, same result.

Questions are 1) why getting this error?, and 2) is this a valid approach?

Thanks.

1

1 Answers

2
votes

var userIdentity = {

        userId: "userid",
        displayName: "userid", 
        attributes: {
            foo: "bar"
        }
};

WL.Server.setActiveUser("PushAppRealm", userIdentity);

This should work. However for this sample you should not be explicitly setting the user identity.The method WL.Server.setActiveUser() is used to set the user identity in case of adapter based authentication.This sample uses form based authentication.