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;
}
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;
}
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;
}
Aggregations