Search in sources :

Example 1 with Email

use of com.google.appengine.api.datastore.Email in project cryptonomica by Cryptonomica.

the class PGPPublicKeyAPI method searchPGPPublicKeys.

@ApiMethod(name = "searchPGPPublicKeys", path = "searchPGPPublicKeys", httpMethod = ApiMethod.HttpMethod.POST)
@SuppressWarnings("unused")
public // 4) by first and last names
SearchPGPPublicKeysReturn searchPGPPublicKeys(// final HttpServletRequest httpServletRequest,
final User googleUser, final SearchPGPPublicKeysForm searchPGPPublicKeysForm) throws Exception {
    // authorization
    UserTools.ensureCryptonomicaRegisteredUser(googleUser);
    // 
    String fingerprint = searchPGPPublicKeysForm.getFingerprint();
    String keyID = searchPGPPublicKeysForm.getKeyID();
    String userID = searchPGPPublicKeysForm.getUserID();
    String firstName = searchPGPPublicKeysForm.getFirstName();
    String lastName = searchPGPPublicKeysForm.getLastName();
    String cryptonomicaUserId = searchPGPPublicKeysForm.getCryptonomicaUserId();
    Email userEmail = null;
    if (searchPGPPublicKeysForm.getUserEmail() != null) {
        userEmail = new Email(searchPGPPublicKeysForm.getUserEmail());
    }
    List<? extends PGPPublicKeyData> result;
    if (fingerprint != null) {
        result = ofy().load().type(PGPPublicKeyData.class).filter("fingerprint", fingerprint).list();
    } else if (keyID != null) {
        result = ofy().load().type(PGPPublicKeyData.class).filter("keyID", keyID).list();
    } else if (userEmail != null) {
        result = ofy().load().type(PGPPublicKeyData.class).filter("userEmail", userEmail).list();
    } else if (firstName != null && lastName != null) {
        result = ofy().load().type(PGPPublicKeyData.class).filter("firstName", firstName).filter("lastName", lastName).list();
    } else if (cryptonomicaUserId != null) {
        result = ofy().load().type(PGPPublicKeyData.class).filter("cryptonomicaUserId", cryptonomicaUserId).list();
    } else {
        throw new Exception("invalid search query: " + new Gson().toJson(searchPGPPublicKeysForm));
    }
    SearchPGPPublicKeysReturn searchPGPPublicKeysReturn = new SearchPGPPublicKeysReturn();
    if (result.size() > 0) {
        searchPGPPublicKeysReturn.PublicKeyDatasToGeneralViews(new ArrayList<PGPPublicKeyData>(result));
        searchPGPPublicKeysReturn.setMessageToUser("search results:");
    } else {
        searchPGPPublicKeysReturn.PublicKeyDatasToGeneralViews(new ArrayList<PGPPublicKeyData>());
        searchPGPPublicKeysReturn.setMessageToUser("no records found");
    }
    return searchPGPPublicKeysReturn;
}
Also used : PGPPublicKeyData(net.cryptonomica.entities.PGPPublicKeyData) Email(com.google.appengine.api.datastore.Email) SearchPGPPublicKeysReturn(net.cryptonomica.returns.SearchPGPPublicKeysReturn) Gson(com.google.gson.Gson) ApiMethod(com.google.api.server.spi.config.ApiMethod)

Example 2 with Email

use of com.google.appengine.api.datastore.Email in project cryptonomica by Cryptonomica.

the class UserSearchAndViewAPI method generalSearchUserProfiles.

@ApiMethod(name = "generalSearchUserProfiles", path = "generalSearchUserProfiles", httpMethod = ApiMethod.HttpMethod.POST)
@SuppressWarnings("unused")
public // returns list of user profiles
UserSearchAndViewReturn generalSearchUserProfiles(final HttpServletRequest httpServletRequest, final User googleUser, final GeneralSearchUserProfilesForm generalSearchUserProfilesForm) throws Exception {
    LOG.info("serch request: " + new Gson().toJson(generalSearchUserProfilesForm));
    // authorization
    UserTools.ensureCryptonomicaRegisteredUser(googleUser);
    // initialize object for search result:
    List<CryptonomicaUser> cryptonomicaUsersList;
    // set "" value to be null
    if (generalSearchUserProfilesForm.getFirstName() != null && generalSearchUserProfilesForm.getFirstName().equals("")) {
        generalSearchUserProfilesForm.setFirstName(null);
    }
    if (generalSearchUserProfilesForm.getLastName() != null && generalSearchUserProfilesForm.getLastName().equals("")) {
        generalSearchUserProfilesForm.setLastName(null);
    }
    if (generalSearchUserProfilesForm.getEmail() != null && generalSearchUserProfilesForm.getEmail().equals("")) {
        generalSearchUserProfilesForm.setEmail(null);
    }
    // search: first name + last name
    if (generalSearchUserProfilesForm.getFirstName() != null && generalSearchUserProfilesForm.getLastName() != null && generalSearchUserProfilesForm.getEmail() == null) {
        cryptonomicaUsersList = ofy().load().type(CryptonomicaUser.class).filter("firstName", generalSearchUserProfilesForm.getFirstName().toLowerCase()).filter("lastName", generalSearchUserProfilesForm.getLastName().toLowerCase()).list();
    } else // first name + last name + email
    if (generalSearchUserProfilesForm.getFirstName() != null && generalSearchUserProfilesForm.getLastName() != null && generalSearchUserProfilesForm.getEmail() != null) {
        cryptonomicaUsersList = ofy().load().type(CryptonomicaUser.class).filter("firstName", generalSearchUserProfilesForm.getFirstName().toLowerCase()).filter("lastName", generalSearchUserProfilesForm.getLastName().toLowerCase()).filter("email", new Email(generalSearchUserProfilesForm.getEmail().toLowerCase())).list();
    } else // first name + email
    if (generalSearchUserProfilesForm.getFirstName() != null && generalSearchUserProfilesForm.getLastName() == null && generalSearchUserProfilesForm.getEmail() != null) {
        cryptonomicaUsersList = ofy().load().type(CryptonomicaUser.class).filter("firstName", generalSearchUserProfilesForm.getFirstName().toLowerCase()).filter("email", new Email(generalSearchUserProfilesForm.getEmail().toLowerCase())).list();
    } else // last name + email
    if (generalSearchUserProfilesForm.getFirstName() == null && generalSearchUserProfilesForm.getLastName() != null && generalSearchUserProfilesForm.getEmail() != null) {
        cryptonomicaUsersList = ofy().load().type(CryptonomicaUser.class).filter("lastName", generalSearchUserProfilesForm.getLastName().toLowerCase()).filter("email", new Email(generalSearchUserProfilesForm.getEmail().toLowerCase())).list();
    } else // email only
    if (generalSearchUserProfilesForm.getFirstName() == null && generalSearchUserProfilesForm.getLastName() == null && generalSearchUserProfilesForm.getEmail() != null) {
        cryptonomicaUsersList = ofy().load().type(CryptonomicaUser.class).filter("email", new Email(generalSearchUserProfilesForm.getEmail().toLowerCase())).list();
    } else // first name only
    if (generalSearchUserProfilesForm.getFirstName() != null && generalSearchUserProfilesForm.getLastName() == null && generalSearchUserProfilesForm.getEmail() == null) {
        cryptonomicaUsersList = ofy().load().type(CryptonomicaUser.class).filter("firstName", generalSearchUserProfilesForm.getFirstName().toLowerCase()).list();
    } else // last name
    if (generalSearchUserProfilesForm.getFirstName() == null && generalSearchUserProfilesForm.getLastName() != null && generalSearchUserProfilesForm.getEmail() == null) {
        cryptonomicaUsersList = ofy().load().type(CryptonomicaUser.class).filter("lastName", generalSearchUserProfilesForm.getLastName().toLowerCase()).list();
    } else {
        throw new Exception("Search query is incorrect or empty");
    }
    // 
    UserSearchAndViewReturn userSearchAndViewReturn;
    if (cryptonomicaUsersList != null && !cryptonomicaUsersList.isEmpty()) {
        userSearchAndViewReturn = new UserSearchAndViewReturn("results found", new ArrayList<>(cryptonomicaUsersList));
    } else {
        userSearchAndViewReturn = new UserSearchAndViewReturn("no results found");
    }
    LOG.info("search result: " + new Gson().toJson(userSearchAndViewReturn));
    return userSearchAndViewReturn;
}
Also used : Email(com.google.appengine.api.datastore.Email) ArrayList(java.util.ArrayList) Gson(com.google.gson.Gson) UserSearchAndViewReturn(net.cryptonomica.returns.UserSearchAndViewReturn) CryptonomicaUser(net.cryptonomica.entities.CryptonomicaUser) ApiMethod(com.google.api.server.spi.config.ApiMethod)

Example 3 with Email

use of com.google.appengine.api.datastore.Email in project cryptonomica by Cryptonomica.

the class UserTools method registerLogin.

// end of ensureGoogleAuth method
public static Login registerLogin(final HttpServletRequest httpServletRequest, final User googleUser) {
    // Register login of this Cryptonomica User:
    Login login = new Login();
    // IP
    String userIP = httpServletRequest.getHeader("X-FORWARDED-FOR");
    if (userIP == null) {
        userIP = httpServletRequest.getRemoteAddr();
    }
    // Get an UserAgentStringParser and analyze the requesting client
    // see example on: http://uadetector.sourceforge.net/usage.html
    UserAgentStringParser parser = UADetectorServiceFactory.getResourceModuleParser();
    ReadableUserAgent agent = parser.parse(httpServletRequest.getHeader("User-Agent"));
    String userBrowser = agent.getName();
    String userOS = agent.getOperatingSystem().getName();
    // 
    String userProviderOrg = null;
    String userProviderHost = null;
    String country = null;
    String region = null;
    String city = null;
    JSONObject ipInfoIoJSON = GetJSONfromURL.getIpInfoIo(userIP);
    if (ipInfoIoJSON != null) {
        try {
            userProviderOrg = ipInfoIoJSON.getString("org");
        } catch (JSONException e) {
            userProviderOrg = e.getMessage();
        }
        try {
            userProviderHost = ipInfoIoJSON.getString("hostname");
        } catch (JSONException e) {
            userProviderHost = e.getMessage();
        }
        try {
            country = ipInfoIoJSON.getString("country");
        } catch (JSONException e) {
            country = e.getMessage();
        }
        try {
            region = ipInfoIoJSON.getString("region");
        } catch (JSONException e) {
            region = e.getMessage();
        }
        try {
            city = ipInfoIoJSON.getString("city");
        } catch (JSONException e) {
            city = e.getMessage();
        }
    }
    login.setCryptonomicaUserKey(Key.create(CryptonomicaUser.class, googleUser.getUserId()));
    login.setLoginEmail(new Email(googleUser.getEmail()));
    login.setLoginDate(new Date());
    login.setIP(userIP);
    login.setUserBrowser(userBrowser);
    login.setUserOS(userOS);
    login.setHostname(userProviderHost);
    login.setCity(city);
    login.setRegion(region);
    login.setCountry(country);
    login.setProvider(userProviderOrg);
    // --- save Login:
    Key<Login> loginKey = ofy().save().entity(login).now();
    login = ofy().load().key(loginKey).now();
    return login;
}
Also used : ReadableUserAgent(net.sf.uadetector.ReadableUserAgent) Email(com.google.appengine.api.datastore.Email) JSONObject(org.json.JSONObject) UserAgentStringParser(net.sf.uadetector.UserAgentStringParser) JSONException(org.json.JSONException) Login(net.cryptonomica.entities.Login) CryptonomicaUser(net.cryptonomica.entities.CryptonomicaUser) Date(java.util.Date)

Aggregations

Email (com.google.appengine.api.datastore.Email)3 ApiMethod (com.google.api.server.spi.config.ApiMethod)2 Gson (com.google.gson.Gson)2 CryptonomicaUser (net.cryptonomica.entities.CryptonomicaUser)2 ArrayList (java.util.ArrayList)1 Date (java.util.Date)1 Login (net.cryptonomica.entities.Login)1 PGPPublicKeyData (net.cryptonomica.entities.PGPPublicKeyData)1 SearchPGPPublicKeysReturn (net.cryptonomica.returns.SearchPGPPublicKeysReturn)1 UserSearchAndViewReturn (net.cryptonomica.returns.UserSearchAndViewReturn)1 ReadableUserAgent (net.sf.uadetector.ReadableUserAgent)1 UserAgentStringParser (net.sf.uadetector.UserAgentStringParser)1 JSONException (org.json.JSONException)1 JSONObject (org.json.JSONObject)1