Search in sources :

Example 1 with Subscriber

use of org.collectiveone.modules.activity.Subscriber in project CollectiveOneWebapp by CollectiveOne.

the class AppUserService method addUserToLocalDB.

@Transactional
private AppUser addUserToLocalDB(String auth0Id) {
    /* retrieve from Auth0 */
    AppUser appUser = null;
    User auth0User = null;
    if (auth0Id.equals("anonymousUser")) {
        return null;
    }
    try {
        auth0User = mgmt.users().get(auth0Id, null).execute();
        /* check if this email is already registered. */
        appUser = appUserRepository.findByEmail(auth0User.getEmail());
        if (appUser == null) {
            // if (auth0User.isEmailVerified()) {
            if (true) {
                /* create a new user if not */
                appUser = new AppUser();
                appUser.getAuth0Ids().add((auth0User.getId()));
                appUser.setEmail(auth0User.getEmail());
                appUser.setEmailNotificationsEnabled(true);
                AppUserProfile profile = new AppUserProfile();
                if (auth0User.getIdentities().get(0).getProvider().equals("auth0")) {
                    profile.setNickname(auth0User.getNickname());
                } else {
                    profile.setNickname(auth0User.getName());
                }
                profile.setUser(appUser);
                profile.setPictureUrl(auth0User.getPicture());
                profile = appUserProfileRepository.save(profile);
                appUser.setProfile(profile);
                /* create global subscriber */
                Subscriber subscriber = new Subscriber();
                subscriber.setType(SubscriptionElementType.COLLECTIVEONE);
                subscriber.setUser(appUser);
                subscriber.setInheritConfig(SubscriberInheritConfig.CUSTOM);
                activityService.initDefaultSubscriber(subscriber);
                subscriberRepository.save(subscriber);
            }
        } else {
            /* just add the auth0id to the existing user */
            appUser.getAuth0Ids().add(auth0Id);
        }
        appUser = appUserRepository.save(appUser);
    } catch (APIException exception) {
        System.out.println(exception.getMessage());
    } catch (Auth0Exception exception) {
        System.out.println(exception.getMessage());
    }
    return appUser;
}
Also used : User(com.auth0.json.mgmt.users.User) APIException(com.auth0.exception.APIException) Subscriber(org.collectiveone.modules.activity.Subscriber) Auth0Exception(com.auth0.exception.Auth0Exception) Transactional(javax.transaction.Transactional)

Aggregations

APIException (com.auth0.exception.APIException)1 Auth0Exception (com.auth0.exception.Auth0Exception)1 User (com.auth0.json.mgmt.users.User)1 Transactional (javax.transaction.Transactional)1 Subscriber (org.collectiveone.modules.activity.Subscriber)1