All Downloads are FREE. Search and download functionalities are using the official Maven repository.

usermanagementapis.UserGroupManagementAPI Maven / Gradle / Ivy

package usermanagementapis;

import dao.EposDataModelDAO;
import model.*;
import org.epos.eposdatamodel.UserGroup;

import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

public class UserGroupManagementAPI {

    /**
     *
     * USER OPERATIONS
     *
     */

    public static Boolean createUser(org.epos.eposdatamodel.User user){
        User user1 = new User();
        user1.setAuthIdentifier(user.getAuthIdentifier());
        user1.setEmail(user.getEmail());
        user1.setGivenname(user.getFirstName());
        user1.setFamilyname(user.getLastName());
        user1.setIsadmin(Boolean.toString(user.getIsAdmin().booleanValue()));

        return getDbaccess().createObject(user1);
    }

    public static org.epos.eposdatamodel.User retrieveUser(org.epos.eposdatamodel.User user){
        List userList = getDbaccess().getOneFromDBBySpecificKey("authIdentifier",user.getAuthIdentifier(), User.class);
        if(userList.isEmpty()) return null;

        User retrievedUser = userList.get(0);

        org.epos.eposdatamodel.User user1 = new org.epos.eposdatamodel.User(
                retrievedUser.getAuthIdentifier(),
                retrievedUser.getFamilyname(),
                retrievedUser.getGivenname(),
                retrievedUser.getEmail(),
                Boolean.parseBoolean(retrievedUser.getIsadmin())
        );

        retrievedUser.getMetadataGroupUsersByAuthIdentifier().forEach(item->{
            UserGroup userGroup = new UserGroup(item.getRole(),item.getGroupId());
            user1.getGroups().add(userGroup);
        });


        return user1 ;
    }

    public static org.epos.eposdatamodel.User retrieveUserById(String userId){
        List userList = getDbaccess().getOneFromDBBySpecificKey("authIdentifier",userId, User.class);
        if(userList.isEmpty()) return null;

        User retrievedUser = userList.get(0);
        org.epos.eposdatamodel.User user1 = new org.epos.eposdatamodel.User(
                retrievedUser.getAuthIdentifier(),
                retrievedUser.getFamilyname(),
                retrievedUser.getGivenname(),
                retrievedUser.getEmail(),
                Boolean.parseBoolean(retrievedUser.getIsadmin())
        );

        return user1 ;
    }

    public static List retrieveAllUsers(){
        List userList = getDbaccess().getAllFromDB(User.class);
        if(userList.isEmpty()) return null;

        List returnList = new ArrayList<>();
        for(User user : userList){
            org.epos.eposdatamodel.User user1 = new org.epos.eposdatamodel.User(
                    user.getAuthIdentifier(),
                    user.getFamilyname(),
                    user.getGivenname(),
                    user.getEmail(),
                    Boolean.parseBoolean(user.getIsadmin())
            );
            returnList.add(user1);
        }

        return returnList ;
    }

    public static Boolean deleteUser(String authIdentfier){
        List user1 = getDbaccess().getOneFromDBBySpecificKey("authIdentifier",authIdentfier,User.class);
        return getDbaccess().deleteObject(user1.get(0));
    }


    /**
     *
     * GROUPS OPERATIONS
     *
     */

    public static Boolean createGroup(org.epos.eposdatamodel.Group group){
        MetadataGroup group1 = new MetadataGroup();
        group1.setId(UUID.randomUUID().toString());
        group1.setName(group.getName());
        group1.setDescription(group.getDescription());
        return getDbaccess().createObject(group1);
    }

    public static MetadataGroup retrieveGroup(org.epos.eposdatamodel.Group group){
        return (MetadataGroup) getDbaccess().getOneFromDBBySpecificKey("id",group.getId(), MetadataGroup.class).get(0);
    }

    public static MetadataGroup retrieveGroupById(String groupId){
        return (MetadataGroup) getDbaccess().getOneFromDBBySpecificKey("id",groupId, MetadataGroup.class).get(0);
    }

    public static List retrieveAllGroups(){
        return getDbaccess().getAllFromDB(MetadataGroup.class);
    }

    public static Boolean deleteGroup(String groupId){
        List group = getDbaccess().getOneFromDBBySpecificKey("id",groupId, MetadataGroup.class);
        return getDbaccess().deleteObject(group.get(0));
    }

    /**
     *
     * ASSIGN USER TO GROUP WITH AUTHORIZATIONS
     *
     */

    public static Boolean addUserToGroup(String groupId, String userId, RoleType role, RequestStatusType requestStatusType){

        MetadataGroup metadataGroup = retrieveGroupById(groupId);

        List userList = getDbaccess().getOneFromDBBySpecificKey("authIdentifier",userId, User.class);
        if(userList.isEmpty()) return null;

        User retrievedUser = userList.get(0);

        if(retrievedUser!=null && metadataGroup!=null) {
            MetadataGroupUser metadataGroupUser = new MetadataGroupUser();
            metadataGroupUser.setId(UUID.randomUUID().toString());
            metadataGroupUser.setMetadataGroupByGroupId(metadataGroup);
            metadataGroupUser.setGroupId(metadataGroup.getId());
            metadataGroupUser.setUserByAuthIdentifier(retrievedUser);
            metadataGroupUser.setAuthIdentifier(retrievedUser.getAuthIdentifier());
            metadataGroupUser.setRequestStatus(requestStatusType);
            metadataGroupUser.setRole(role);

            return getDbaccess().createObject(metadataGroupUser);
        }
        return false;
    }

    public static void addMetadataElementToGroup(String metaId, String groupId){

        AuthorizationGroup authorizationGroup = new AuthorizationGroup();
        authorizationGroup.setGroupId(groupId);
        authorizationGroup.setMetaId(metaId);
        authorizationGroup.setId(UUID.randomUUID().toString());
        getDbaccess().createObject(authorizationGroup);
    }

    private static EposDataModelDAO getDbaccess() {
        return new EposDataModelDAO();
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy