Package it.unipd.netmus.server

Source Code of it.unipd.netmus.server.UserServiceImpl

package it.unipd.netmus.server;

import it.unipd.netmus.client.service.UserService;
import it.unipd.netmus.server.persistent.UserAccount;
import it.unipd.netmus.server.utils.BCrypt;
import it.unipd.netmus.shared.UserCompleteDTO;

import java.util.List;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;

/**
* Nome: UserServiceImpl.java
* Autore: VT.G
* Licenza: GNU GPL v3
* Data Creazione: 13 Febbraio 2011
*/
@SuppressWarnings("serial")
public class UserServiceImpl extends RemoteServiceServlet implements
        UserService {

    /**
     * Cancella irreversibilmente l’utente e tutte le sue informazioni dal
     * Datastore e conseguentemente lo reindirizza alla pagina iniziale di
     * login. Le canzoni che facevano parte del catalogo non vengono cancellate.
     */
    @Override
    public boolean deleteProfile(String user) {
        try {
            UserAccount current_user = UserAccount.load(user);
            UserAccount.deleteUser(current_user);

            return true;
        } catch (Exception e) {
            return false;
        }
    }

    /**
     * Salva nell’ UserAccount del Datastore i dati presenti nell’
     * UserCompleteDTO dato in input sovrascrivendo le informazioni precedenti.
     * E previsto qui anche il cambio della password.
     */
    @Override
    public boolean editProfile(String user, UserCompleteDTO new_info_user) {

        try {
            UserAccount current_user = UserAccount.load(user);

            if (!new_info_user.getNewPassword().equals("")) {
                String passwordHash = BCrypt.hashpw(
                        new_info_user.getNewPassword(), BCrypt.gensalt());
                current_user.setPassword(passwordHash);
            }

            current_user.setNickName(new_info_user.getNickName());
            current_user.setFirstName(new_info_user.getFirstName());
            current_user.setLastName(new_info_user.getLastName());
            current_user.setGender(new_info_user.getGender());
            current_user.setNationality(new_info_user.getNationality());
            current_user.setAboutMe(new_info_user.getAboutMe());
            current_user.update();
            return true;

        } catch (Exception e) {
            return false;
        }

    }

    /**
     * Cerca nel Datastore i nomi degli utenti il cui catalogo ha proprietà
     * simili a quello dato in input. I criteri di somiglianza sono dati
     * dall’artista più ricorrente.
     */
    @Override
    public List<String> findRelatedUsers(String user) {

        UserAccount user_account = UserAccount.load(user);

        return user_account.findRelatedUsers();
    }

    /**
     * Trova nel Datastore l’utente a cui corrisponde l’username dato in input e
     * ne ritorna le informazioni incapsulate in un DTO. Gli utenti di cui viene
     * richiesto il caricamento devono essere presenti nel Datastore.
     */
    @Override
    public UserCompleteDTO loadProfile(String user) {

        UserAccount user_account = UserAccount.load(user);

        if (user_account != null) {
            return user_account.toUserCompleteDTO();
        } else {
            return null;
        }

    }

}
TOP

Related Classes of it.unipd.netmus.server.UserServiceImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.