diff --git a/src/main/java/biz/nynja/account/components/Validator.java b/src/main/java/biz/nynja/account/components/Validator.java index a566b0231840ff57dbacba3dd7517db795c50a44..8544c46497a82c16f5fd8650f49cf080ef4a3a56 100644 --- a/src/main/java/biz/nynja/account/components/Validator.java +++ b/src/main/java/biz/nynja/account/components/Validator.java @@ -261,13 +261,6 @@ public class Validator { return Cause.USERNAME_INVALID; } - for (AuthProviderDetails details : request.getCommunicationProvidersList()) { - Cause cause = validateAuthProvider(details.getAuthenticationType(), details.getAuthenticationProvider()); - if (cause != null) { - return cause; - } - } - if (request.getAccountName() != null && !request.getAccountName().trim().isEmpty() && !isAccountNameValid(request.getAccountName())) { return Cause.ACCOUNT_NAME_INVALID; @@ -294,13 +287,6 @@ public class Validator { return Cause.INVALID_LAST_NAME; } - for (AuthProviderDetails details : request.getCommunicationProvidersList()) { - Cause cause = validateAuthProvider(details.getAuthenticationType(), details.getAuthenticationProvider()); - if (cause != null) { - return cause; - } - } - if (request.getAccountName() != null && !request.getAccountName().trim().isEmpty() && !isAccountNameValid(request.getAccountName())) { return Cause.ACCOUNT_NAME_INVALID; diff --git a/src/main/java/biz/nynja/account/models/Account.java b/src/main/java/biz/nynja/account/models/Account.java index 8d1ade3b2a09585767feb08807b90611fad0d7bb..06b7c184c996e10cd92f6e880c6886c3dd252857 100644 --- a/src/main/java/biz/nynja/account/models/Account.java +++ b/src/main/java/biz/nynja/account/models/Account.java @@ -32,7 +32,7 @@ public class Account { private String accountStatus; private Long creationTimestamp; private Long lastUpdateTimestamp; - private Set communicationProviders; + private Set contactsInfo; public UUID getAccountId() { return accountId; @@ -106,6 +106,14 @@ public class Account { this.accountName = accountName; } + public Set getContactsInfo() { + return contactsInfo; + } + + public void setContactsInfo(Set contactsInfo) { + this.contactsInfo = contactsInfo; + } + public String getUsername() { return username; } @@ -146,14 +154,6 @@ public class Account { this.lastUpdateTimestamp = lastUpdateTimestamp; } - public Set getCommunicationProviders() { - return communicationProviders; - } - - public void setCommunicationProviders(Set communicationProviders) { - this.communicationProviders = communicationProviders; - } - @Override public int hashCode() { final int prime = 31; @@ -165,7 +165,7 @@ public class Account { result = prime * result + ((authenticationProvider == null) ? 0 : authenticationProvider.hashCode()); result = prime * result + ((authenticationProviderType == null) ? 0 : authenticationProviderType.hashCode()); result = prime * result + ((avatar == null) ? 0 : avatar.hashCode()); - result = prime * result + ((communicationProviders == null) ? 0 : communicationProviders.hashCode()); + result = prime * result + ((contactsInfo == null) ? 0 : contactsInfo.hashCode()); result = prime * result + ((creationTimestamp == null) ? 0 : creationTimestamp.hashCode()); result = prime * result + ((firstName == null) ? 0 : firstName.hashCode()); result = prime * result + ((lastName == null) ? 0 : lastName.hashCode()); @@ -220,10 +220,10 @@ public class Account { return false; } else if (!avatar.equals(other.avatar)) return false; - if (communicationProviders == null) { - if (other.communicationProviders != null) + if (contactsInfo == null) { + if (other.contactsInfo != null) return false; - } else if (!communicationProviders.equals(other.communicationProviders)) + } else if (!contactsInfo.equals(other.contactsInfo)) return false; if (creationTimestamp == null) { if (other.creationTimestamp != null) @@ -272,8 +272,8 @@ public class Account { .append(lastName).append(", avatar=").append(avatar).append(", accountName=").append(accountName) .append(", username=").append(username).append(", qrCode=").append(qrCode).append(", accountStatus=") .append(accountStatus).append(", creationTimestamp=").append(creationTimestamp) - .append(", lastUpdateTimestamp=").append(lastUpdateTimestamp).append(", communicationProviders=") - .append(communicationProviders).append("]").toString(); + .append(", lastUpdateTimestamp=").append(lastUpdateTimestamp).append(", contactsInfo=") + .append(contactsInfo).append("]").toString(); } public static Account createPendingAccountFromProto(CreatePendingAccountRequest request) { @@ -323,9 +323,9 @@ public class Account { if (getAvatar() != null) { builder.setAvatar(com.google.protobuf.ByteString.copyFrom(avatar)); } - if (getCommunicationProviders() != null) { - for (AuthenticationProvider ap : communicationProviders) { - builder.addCommunicationProviders(ap.toProto()); + if (getContactsInfo() != null) { + for (ContactInfo c : contactsInfo) { + builder.addContactsInfo(c.toProto()); } } diff --git a/src/main/java/biz/nynja/account/models/AccountByAuthenticationProvider.java b/src/main/java/biz/nynja/account/models/AccountByAuthenticationProvider.java index 498059d87e0f32acae9ead6f8a1ea73982b4bddf..7a1b23dd3e39a078fb3f1725e0215780092c9894 100644 --- a/src/main/java/biz/nynja/account/models/AccountByAuthenticationProvider.java +++ b/src/main/java/biz/nynja/account/models/AccountByAuthenticationProvider.java @@ -24,7 +24,7 @@ public class AccountByAuthenticationProvider { private String accountStatus; private Long creationTimestamp; private Long lastUpdateTimestamp; - private Set communicationProviders; + private Set contactsInfo; private String qrCode; public UUID getAccountId() { @@ -131,12 +131,12 @@ public class AccountByAuthenticationProvider { this.lastUpdateTimestamp = lastUpdateTimestamp; } - public Set getCommunicationProviders() { - return communicationProviders; + public Set getContactsInfo() { + return contactsInfo; } - public void setCommunicationProviders(Set communicationProviders) { - this.communicationProviders = communicationProviders; + public void setContactsInfo(Set contactsInfo) { + this.contactsInfo = contactsInfo; } public String getQrCode() { @@ -158,7 +158,7 @@ public class AccountByAuthenticationProvider { result = prime * result + ((authenticationProvider == null) ? 0 : authenticationProvider.hashCode()); result = prime * result + ((authenticationProviderType == null) ? 0 : authenticationProviderType.hashCode()); result = prime * result + ((avatar == null) ? 0 : avatar.hashCode()); - result = prime * result + ((communicationProviders == null) ? 0 : communicationProviders.hashCode()); + result = prime * result + ((contactsInfo == null) ? 0 : contactsInfo.hashCode()); result = prime * result + ((creationTimestamp == null) ? 0 : creationTimestamp.hashCode()); result = prime * result + ((firstName == null) ? 0 : firstName.hashCode()); result = prime * result + ((lastName == null) ? 0 : lastName.hashCode()); @@ -169,7 +169,6 @@ public class AccountByAuthenticationProvider { return result; } - @Override public boolean equals(Object obj) { if (this == obj) @@ -214,10 +213,10 @@ public class AccountByAuthenticationProvider { return false; } else if (!avatar.equals(other.avatar)) return false; - if (communicationProviders == null) { - if (other.communicationProviders != null) + if (contactsInfo == null) { + if (other.contactsInfo != null) return false; - } else if (!communicationProviders.equals(other.communicationProviders)) + } else if (!contactsInfo.equals(other.contactsInfo)) return false; if (creationTimestamp == null) { if (other.creationTimestamp != null) @@ -266,8 +265,7 @@ public class AccountByAuthenticationProvider { .append(lastName).append(", avatar=").append(avatar).append(", accountName=").append(accountName) .append(", username=").append(username).append(", accountStatus=").append(accountStatus) .append(", creationTimestamp=").append(creationTimestamp).append(", lastUpdateTimestamp=") - .append(lastUpdateTimestamp).append(", communicationProviders=").append(communicationProviders) - .append("]").toString(); + .append(lastUpdateTimestamp).append(", contactsInfo=").append(contactsInfo).append("]").toString(); } public biz.nynja.account.grpc.AccountDetails toProto() { @@ -309,9 +307,9 @@ public class AccountByAuthenticationProvider { if (avatar != null) { builder.setAvatar(com.google.protobuf.ByteString.copyFrom(avatar)); } - if (communicationProviders != null) { - for (AuthenticationProvider ap : communicationProviders) { - builder.addCommunicationProviders(ap.toProto()); + if (contactsInfo != null) { + for (ContactInfo c : contactsInfo) { + builder.addContactsInfo(c.toProto()); } } @@ -334,7 +332,7 @@ public class AccountByAuthenticationProvider { account.setAccountStatus(this.accountStatus); account.setCreationTimestamp(this.creationTimestamp); account.setLastUpdateTimestamp(this.lastUpdateTimestamp); - account.setCommunicationProviders(this.communicationProviders); + account.setContactsInfo(this.contactsInfo); account.setQrCode(this.qrCode); return account; } diff --git a/src/main/java/biz/nynja/account/models/AccountByProfileId.java b/src/main/java/biz/nynja/account/models/AccountByProfileId.java index 14b779be1b4102192e7b0cc0434dd001a3a9faf3..0f7eac92ca62bf7e02c37567678445c2a3f00a68 100644 --- a/src/main/java/biz/nynja/account/models/AccountByProfileId.java +++ b/src/main/java/biz/nynja/account/models/AccountByProfileId.java @@ -28,7 +28,7 @@ public class AccountByProfileId { private String accountStatus; private Long creationTimestamp; private Long lastUpdateTimestamp; - private Set communicationProviders; + private Set contactsInfo; private String qrCode; public UUID getAccountId() { @@ -135,12 +135,12 @@ public class AccountByProfileId { this.lastUpdateTimestamp = lastUpdateTimestamp; } - public Set getCommunicationProviders() { - return communicationProviders; + public Set getContactsInfo() { + return contactsInfo; } - public void setCommunicationProviders(Set communicationProviders) { - this.communicationProviders = communicationProviders; + public void setContactsInfo(Set contactsInfo) { + this.contactsInfo = contactsInfo; } public String getQrCode() { @@ -162,7 +162,7 @@ public class AccountByProfileId { result = prime * result + ((authenticationProvider == null) ? 0 : authenticationProvider.hashCode()); result = prime * result + ((authenticationProviderType == null) ? 0 : authenticationProviderType.hashCode()); result = prime * result + ((avatar == null) ? 0 : avatar.hashCode()); - result = prime * result + ((communicationProviders == null) ? 0 : communicationProviders.hashCode()); + result = prime * result + ((contactsInfo == null) ? 0 : contactsInfo.hashCode()); result = prime * result + ((creationTimestamp == null) ? 0 : creationTimestamp.hashCode()); result = prime * result + ((firstName == null) ? 0 : firstName.hashCode()); result = prime * result + ((lastName == null) ? 0 : lastName.hashCode()); @@ -217,10 +217,10 @@ public class AccountByProfileId { return false; } else if (!avatar.equals(other.avatar)) return false; - if (communicationProviders == null) { - if (other.communicationProviders != null) + if (contactsInfo == null) { + if (other.contactsInfo != null) return false; - } else if (!communicationProviders.equals(other.communicationProviders)) + } else if (!contactsInfo.equals(other.contactsInfo)) return false; if (creationTimestamp == null) { if (other.creationTimestamp != null) @@ -269,8 +269,7 @@ public class AccountByProfileId { .append(lastName).append(", avatar=").append(avatar).append(", accountName=").append(accountName) .append(", username=").append(username).append(", accountStatus=").append(accountStatus) .append(", creationTimestamp=").append(creationTimestamp).append(", lastUpdateTimestamp=") - .append(lastUpdateTimestamp).append(", communicationProviders=").append(communicationProviders) - .append("]").toString(); + .append(lastUpdateTimestamp).append(", contactsInfo=").append(contactsInfo).append("]").toString(); } public biz.nynja.account.grpc.AccountDetails toProto() { @@ -313,9 +312,9 @@ public class AccountByProfileId { if (getAvatar() != null) { builder.setAvatar(com.google.protobuf.ByteString.copyFrom(avatar)); } - if (getCommunicationProviders() != null) { - for (AuthenticationProvider ap : communicationProviders) { - builder.addCommunicationProviders(ap.toProto()); + if (getContactsInfo() != null) { + for (ContactInfo c : contactsInfo) { + builder.addContactsInfo(c.toProto()); } } diff --git a/src/main/java/biz/nynja/account/models/AccountByUsername.java b/src/main/java/biz/nynja/account/models/AccountByUsername.java index c25bf945cbc08640eb292e97188cda5c8cb6cb7b..d60c2ee1e7cc952103be547471edf73420d9dab9 100644 --- a/src/main/java/biz/nynja/account/models/AccountByUsername.java +++ b/src/main/java/biz/nynja/account/models/AccountByUsername.java @@ -25,7 +25,7 @@ public class AccountByUsername { private String accountStatus; private Long creationTimestamp; private Long lastUpdateTimestamp; - private Set communicationProviders; + private Set contactsInfo; private String qrCode; public UUID getProfileId() { @@ -132,12 +132,12 @@ public class AccountByUsername { this.lastUpdateTimestamp = lastUpdateTimestamp; } - public Set getCommunicationProviders() { - return communicationProviders; + public Set getContactsInfo() { + return contactsInfo; } - public void setCommunicationProviders(Set communicationProviders) { - this.communicationProviders = communicationProviders; + public void setContactsInfo(Set contactsInfo) { + this.contactsInfo = contactsInfo; } public String getQrCode() { @@ -159,7 +159,7 @@ public class AccountByUsername { result = prime * result + ((authenticationProvider == null) ? 0 : authenticationProvider.hashCode()); result = prime * result + ((authenticationProviderType == null) ? 0 : authenticationProviderType.hashCode()); result = prime * result + ((avatar == null) ? 0 : avatar.hashCode()); - result = prime * result + ((communicationProviders == null) ? 0 : communicationProviders.hashCode()); + result = prime * result + ((contactsInfo == null) ? 0 : contactsInfo.hashCode()); result = prime * result + ((creationTimestamp == null) ? 0 : creationTimestamp.hashCode()); result = prime * result + ((firstName == null) ? 0 : firstName.hashCode()); result = prime * result + ((lastName == null) ? 0 : lastName.hashCode()); @@ -214,10 +214,10 @@ public class AccountByUsername { return false; } else if (!avatar.equals(other.avatar)) return false; - if (communicationProviders == null) { - if (other.communicationProviders != null) + if (contactsInfo == null) { + if (other.contactsInfo != null) return false; - } else if (!communicationProviders.equals(other.communicationProviders)) + } else if (!contactsInfo.equals(other.contactsInfo)) return false; if (creationTimestamp == null) { if (other.creationTimestamp != null) @@ -266,7 +266,7 @@ public class AccountByUsername { .append(lastName).append(", avatar=").append(avatar).append(", accountName=").append(accountName) .append(", username=").append(username).append(", accountStatus=").append(accountStatus) .append(", creationTimestamp=").append(creationTimestamp).append(", lastUpdateTimestamp=") - .append(lastUpdateTimestamp).append(", communicationProviders=").append(communicationProviders) + .append(lastUpdateTimestamp).append(", contactsInfo=").append(contactsInfo) .append("]").toString(); } diff --git a/src/main/java/biz/nynja/account/models/ContactInfo.java b/src/main/java/biz/nynja/account/models/ContactInfo.java new file mode 100644 index 0000000000000000000000000000000000000000..c4f13cc8009fc01130c1509c4824f08d90e0b48a --- /dev/null +++ b/src/main/java/biz/nynja/account/models/ContactInfo.java @@ -0,0 +1,134 @@ +/** + * Copyright (C) 2018 Nynja Inc. All rights reserved. + */ +package biz.nynja.account.models; + +import org.springframework.data.cassandra.core.mapping.UserDefinedType; + +import biz.nynja.account.grpc.ContactDetails; +import biz.nynja.account.grpc.ContactDetails.Builder; +import biz.nynja.account.grpc.ContactType; + +@UserDefinedType +public class ContactInfo { + + private String type; + private String value; + private String label; + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((label == null) ? 0 : label.hashCode()); + result = prime * result + ((type == null) ? 0 : type.hashCode()); + result = prime * result + ((value == null) ? 0 : value.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + ContactInfo other = (ContactInfo) obj; + if (label == null) { + if (other.label != null) + return false; + } else if (!label.equals(other.label)) + return false; + if (type == null) { + if (other.type != null) + return false; + } else if (!type.equals(other.type)) + return false; + if (value == null) { + if (other.value != null) + return false; + } else if (!value.equals(other.value)) + return false; + return true; + } + + @Override + public String toString() { + return new StringBuilder("Contact [type=").append(type).append(", value=").append(value).append(", label=") + .append(label).append("]").toString(); + } + + public static ContactInfo createContactInfoFromProto(ContactDetails contactDetails) { + ContactInfo contactInfo = new ContactInfo(); + contactInfo.setType(contactDetails.getType().toString()); + contactInfo.setValue(contactDetails.getValue()); + contactInfo.setLabel(contactDetails.getLabel()); + return contactInfo; + } + + public ContactDetails toProto() { + + Builder builder = ContactDetails.newBuilder(); + + ContactType contactType = buildContactType(getType()); + if (contactType != null) { + builder.setType(contactType); + } + + if (getValue() != null) { + builder.setValue(getValue()); + } + if (getLabel() != null) { + builder.setLabel(getLabel()); + } + + return builder.build(); + } + + private ContactType buildContactType(String type) { + ContactType contactType = null; + switch (type) { + case "PHONE_CONTACT": + contactType = ContactType.PHONE_CONTACT; + break; + case "EMAIL_CONTACT": + contactType = ContactType.EMAIL_CONTACT; + break; + case "FACEBOOK_CONTACT": + contactType = ContactType.FACEBOOK_CONTACT; + break; + case "GOOGLEPLUS_CONTACT": + contactType = ContactType.GOOGLEPLUS_CONTACT; + break; + case "TWITTER_CONTACT": + contactType = ContactType.TWITTER_CONTACT; + break; + } + return contactType; + } +} diff --git a/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java b/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java index 9a7e97cf82e01cd528d152afb88aa86eff426ff1..76a684eba5394ac5a2ef2af99f950129e28c6adb 100644 --- a/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java +++ b/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java @@ -31,10 +31,10 @@ import biz.nynja.account.grpc.UpdateAccountRequest; import biz.nynja.account.grpc.UpdateProfileRequest; import biz.nynja.account.models.Account; import biz.nynja.account.models.AccountByAuthenticationProvider; -import biz.nynja.account.models.AccountByCommunicationProvider; import biz.nynja.account.models.AccountByProfileId; import biz.nynja.account.models.AccountByUsername; import biz.nynja.account.models.AuthenticationProvider; +import biz.nynja.account.models.ContactInfo; import biz.nynja.account.models.PendingAccount; import biz.nynja.account.models.PendingAccountByAuthenticationProvider; import biz.nynja.account.models.Profile; @@ -134,16 +134,6 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio newAccount.setAccountStatus(request.getAccountStatus()); newAccount.setUsername(request.getUsername()); newAccount.setCreationTimestamp(creationTimestamp); - Set communicationProvidersSet = new HashSet(); - newAccount.setCommunicationProviders(communicationProvidersSet); - if ((request.getCommunicationProvidersList() != null) && (request.getCommunicationProvidersList().size() > 0)) { - for (int i = 0; i < request.getCommunicationProvidersList().size(); i++) { - communicationProvidersSet.add(AuthenticationProvider - .createAuthenticationProviderFromProto(request.getCommunicationProviders(i))); - } - newAccount.setCommunicationProviders(communicationProvidersSet); - } - newAccount.setCommunicationProviders(communicationProvidersSet); newAccount.setQrCode(request.getQrCode()); batchOps.insert(newAccount); } @@ -207,43 +197,9 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio return null; } Long timeUpdated = new Date().getTime(); - Set existingCommunicationProvidersSet = new HashSet(); - if (existingAccount.getCommunicationProviders() != null) { - existingCommunicationProvidersSet = new HashSet( - existingAccount.getCommunicationProviders()); - } - Set requestedCommunicationProvidersSet = new HashSet(); - Set sameCommunicationProvidersSet = new HashSet(); - Set oldCommunicationProvidersSet = new HashSet(); - Set newCommunicationProvidersSet = new HashSet(); - - if (request.getCommunicationProvidersList() != null) { - for (AuthProviderDetails authProviderDetails : request.getCommunicationProvidersList()) { - requestedCommunicationProvidersSet - .add(AuthenticationProvider.createAuthenticationProviderFromProto(authProviderDetails)); - } - } - - try { - sameCommunicationProvidersSet = new HashSet(requestedCommunicationProvidersSet); - oldCommunicationProvidersSet = new HashSet(existingCommunicationProvidersSet); - newCommunicationProvidersSet = new HashSet(requestedCommunicationProvidersSet); - - sameCommunicationProvidersSet.retainAll(existingCommunicationProvidersSet); - oldCommunicationProvidersSet.removeAll(sameCommunicationProvidersSet); - newCommunicationProvidersSet.removeAll(sameCommunicationProvidersSet); - } catch (Exception e) { - logger.info("Exception while setting communication providers."); - logger.debug("Exception while setting communication providers: {} ...", e.getMessage()); - return null; - } - WriteResult wr = null; try { updateAccountData(batchOperations, request, existingAccount, timeUpdated); - insertNewCommunicationProvidersToAccount(batchOperations, request, newCommunicationProvidersSet); - deleteCommunicationProvidersFromAccount(batchOperations, existingAccount, oldCommunicationProvidersSet); - updateSameCommunicationProvidersFromAccount(batchOperations, request, sameCommunicationProvidersSet); wr = batchOperations.execute(); } catch (IllegalArgumentException | IllegalStateException e) { logger.info("Exception while updating account."); @@ -280,17 +236,9 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio if (existingAccountsForProfile.size() == 1) { alsoDeleteProfile = true; } - - Set existingCommunicationProvidersSet = new HashSet(); - if (existingAccount.getCommunicationProviders() != null) { - existingCommunicationProvidersSet = new HashSet( - existingAccount.getCommunicationProviders()); - } WriteResult wr = null; try { deleteAccountData(batchOperations, existingAccount); - deleteCommunicationProvidersFromAccount(batchOperations, existingAccount, - existingCommunicationProvidersSet); deleteProfileByAuthenticationProvider(batchOperations, existingAccount.getProfileId(), AuthenticationProvider.createAuthenticationProviderFromStrings( existingAccount.getAuthenticationProviderType(), @@ -363,14 +311,6 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio updatedAccount.setLastName(request.getLastName()); updatedAccount.setUsername(request.getUsername()); updatedAccount.setAccountStatus(request.getAccountStatus()); - Set communicationProvidersSet = new HashSet(); - if (request.getCommunicationProvidersList() != null) { - for (AuthProviderDetails authProviderDetails : request.getCommunicationProvidersList()) { - communicationProvidersSet - .add(AuthenticationProvider.createAuthenticationProviderFromProto(authProviderDetails)); - } - updatedAccount.setCommunicationProviders(communicationProvidersSet); - } updatedAccount.setLastUpdateTimestamp(lastUpdateTimestamp); batchOps.update(updatedAccount); } @@ -428,27 +368,6 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio batchOps.delete(profileToDelete); } - private void insertNewCommunicationProvidersToAccount(CassandraBatchOperations batchOps, - UpdateAccountRequest request, Set newCommunicationProvidersSet) { - for (AuthenticationProvider commProvider : newCommunicationProvidersSet) { - insertNewAccountByCommunicationProvider(batchOps, request, commProvider); - } - } - - private void deleteCommunicationProvidersFromAccount(CassandraBatchOperations batchOps, Account existingAccount, - Set communicationProvidersSetToDelete) { - for (AuthenticationProvider commProvider : communicationProvidersSetToDelete) { - deleteAccountByCommunicationProvider(batchOps, existingAccount, commProvider); - } - } - - private void updateSameCommunicationProvidersFromAccount(CassandraBatchOperations batchOps, - UpdateAccountRequest request, Set sameCommunicationProvidersSet) { - for (AuthenticationProvider commProvider : sameCommunicationProvidersSet) { - updateSameAccountByCommunicationProvider(batchOps, request, commProvider); - } - } - private void deleteAuthenticationProvidersFromProfile(CassandraBatchOperations batchOps, UUID profileId, Set authenticationProvidersSetToDelete) { for (AuthenticationProvider authProvider : authenticationProvidersSetToDelete) { @@ -465,42 +384,6 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio batchOps.delete(profileByAuthenticationProviderToDelete); } - private void insertNewAccountByCommunicationProvider(CassandraBatchOperations batchOps, - UpdateAccountRequest request, AuthenticationProvider authProvider) { - AccountByCommunicationProvider newAccountByCommunicationProvider = new AccountByCommunicationProvider(); - newAccountByCommunicationProvider.setCommunicationProvider(authProvider.getValue()); - newAccountByCommunicationProvider.setCommunicationProviderType(authProvider.getType()); - newAccountByCommunicationProvider.setAccountId(UUID.fromString(request.getAccountId())); - newAccountByCommunicationProvider.setAccountName(request.getAccountName()); - newAccountByCommunicationProvider.setFirstName(request.getFirstName()); - newAccountByCommunicationProvider.setAvatar(request.getAvatar().asReadOnlyByteBuffer()); - batchOps.insert(newAccountByCommunicationProvider); - } - - private void deleteAccountByCommunicationProvider(CassandraBatchOperations batchOps, Account existingAccount, - AuthenticationProvider authProvider) { - AccountByCommunicationProvider accountByCommunicationProviderToDelete = new AccountByCommunicationProvider(); - accountByCommunicationProviderToDelete.setCommunicationProvider(authProvider.getValue()); - accountByCommunicationProviderToDelete.setCommunicationProviderType(authProvider.getType()); - accountByCommunicationProviderToDelete.setAccountId(existingAccount.getAccountId()); - accountByCommunicationProviderToDelete.setAccountName(existingAccount.getAccountName()); - accountByCommunicationProviderToDelete.setFirstName(existingAccount.getFirstName()); - accountByCommunicationProviderToDelete.setAvatar(existingAccount.getAvatar()); - batchOps.delete(accountByCommunicationProviderToDelete); - } - - private void updateSameAccountByCommunicationProvider(CassandraBatchOperations batchOps, - UpdateAccountRequest request, AuthenticationProvider authProvider) { - AccountByCommunicationProvider oldAccountByCommunicationProvider = new AccountByCommunicationProvider(); - oldAccountByCommunicationProvider.setCommunicationProvider(authProvider.getValue()); - oldAccountByCommunicationProvider.setCommunicationProviderType(authProvider.getType()); - oldAccountByCommunicationProvider.setAccountId(UUID.fromString(request.getAccountId())); - oldAccountByCommunicationProvider.setAccountName(request.getAccountName()); - oldAccountByCommunicationProvider.setFirstName(request.getFirstName()); - oldAccountByCommunicationProvider.setAvatar(request.getAvatar().asReadOnlyByteBuffer()); - batchOps.update(oldAccountByCommunicationProvider); - } - public boolean foundExistingNotOwnUsername(UUID accountId, String username) { AccountByUsername foundAccountByUsername = accountByUsernameRepository.findByUsername(username); if (foundAccountByUsername == null) { @@ -580,14 +463,7 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio List existingAccountsForProfile) { for (AccountByProfileId accountByProfileId : existingAccountsForProfile) { Account existingAccount = accountRepository.findByAccountId(accountByProfileId.getAccountId()); - Set existingCommunicationProvidersSet = new HashSet(); - if (existingAccount.getCommunicationProviders() != null) { - existingCommunicationProvidersSet = new HashSet( - existingAccount.getCommunicationProviders()); - } deleteAccountData(batchOperations, existingAccount); - deleteCommunicationProvidersFromAccount(batchOperations, existingAccount, - existingCommunicationProvidersSet); deleteProfileByAuthenticationProvider(batchOperations, profileId, AuthenticationProvider.createAuthenticationProviderFromStrings( existingAccount.getAuthenticationProviderType(), diff --git a/src/test/java/biz/nynja/account/components/ValidatorTests.java b/src/test/java/biz/nynja/account/components/ValidatorTests.java index 1c6f789ee3bb5eecaf3305bb3a0acb959442781b..008f3b100b31cecaa212fc5faad5bcea115d3920 100644 --- a/src/test/java/biz/nynja/account/components/ValidatorTests.java +++ b/src/test/java/biz/nynja/account/components/ValidatorTests.java @@ -286,12 +286,9 @@ public class ValidatorTests { @Test public void validateCompletePendingAccountCreationRequestGoodRequestTest() { - AuthProviderDetails pad = AuthProviderDetails.newBuilder().setAuthenticationType(AuthenticationType.EMAIL) - .setAuthenticationProvider("valid.E-mail1@domain-sub.test.com").build(); - CompletePendingAccountCreationRequest request = CompletePendingAccountCreationRequest.newBuilder() .setAccountId(Util.ACCOUNT_ID.toString()).setFirstName(Util.FIRST_NAME).setLastName(Util.LAST_NAME) - .setUsername(Util.USERNAME).addCommunicationProviders(pad).build(); + .setUsername(Util.USERNAME).build(); assertNull(validator.validateCompletePendingAccountCreationRequest(request)); } diff --git a/src/test/java/biz/nynja/account/services/AccountServiceTests.java b/src/test/java/biz/nynja/account/services/AccountServiceTests.java index 851446e1f0b82d1185b20cf7191f809c7b94ccde..59f56f4e4471bbe481f0c1584888140a0da99bc6 100644 --- a/src/test/java/biz/nynja/account/services/AccountServiceTests.java +++ b/src/test/java/biz/nynja/account/services/AccountServiceTests.java @@ -514,9 +514,6 @@ public class AccountServiceTests extends GrpcServerTestBase { public void testCompletePendingAccountCreationOK() { final CompletePendingAccountCreationRequest request = CompletePendingAccountCreationRequest.newBuilder() .setAccountId(Util.ACCOUNT_ID.toString()).setUsername(Util.USERNAME).setFirstName(Util.FIRST_NAME) - .addCommunicationProviders( - AuthProviderDetails.newBuilder().setAuthenticationType(AuthenticationType.PHONE) - .setAuthenticationProvider("BG:+359881236548").build()) .build(); given(accountRepositoryAdditional .completePendingAccountCreation(Mockito.any(CompletePendingAccountCreationRequest.class))) @@ -535,9 +532,6 @@ public class AccountServiceTests extends GrpcServerTestBase { public void testCompletePendingAccountCreationUsernameInvalid() { final CompletePendingAccountCreationRequest request = CompletePendingAccountCreationRequest.newBuilder() .setAccountId(Util.ACCOUNT_ID.toString()).setUsername("Invalid!Username").setFirstName(Util.FIRST_NAME) - .addCommunicationProviders( - AuthProviderDetails.newBuilder().setAuthenticationType(AuthenticationType.PHONE) - .setAuthenticationProvider("BG:+359881236548").build()) .build(); final AccountServiceGrpc.AccountServiceBlockingStub accountServiceBlockingStub = AccountServiceGrpc .newBlockingStub(Optional.ofNullable(channel).orElse(inProcChannel)); @@ -550,11 +544,7 @@ public class AccountServiceTests extends GrpcServerTestBase { @Test public void testCompletePendingAccountCreationMissingFirstName() { final CompletePendingAccountCreationRequest request = CompletePendingAccountCreationRequest.newBuilder() - .setAccountId(Util.ACCOUNT_ID.toString()).setUsername(Util.USERNAME) - .addCommunicationProviders( - AuthProviderDetails.newBuilder().setAuthenticationType(AuthenticationType.PHONE) - .setAuthenticationProvider("BG:+359881236548").build()) - .build(); + .setAccountId(Util.ACCOUNT_ID.toString()).setUsername(Util.USERNAME).build(); final AccountServiceGrpc.AccountServiceBlockingStub accountServiceBlockingStub = AccountServiceGrpc .newBlockingStub(Optional.ofNullable(channel).orElse(inProcChannel)); final AccountResponse respose = accountServiceBlockingStub.completePendingAccountCreation(request); @@ -582,11 +572,7 @@ public class AccountServiceTests extends GrpcServerTestBase { public void testCompletePendingAccountCreationInvalidLastName() { final CompletePendingAccountCreationRequest request = CompletePendingAccountCreationRequest.newBuilder() .setAccountId(Util.ACCOUNT_ID.toString()).setUsername(Util.USERNAME).setFirstName(Util.FIRST_NAME) - .setLastName("VeryInvalidLastNameRepeatVeryInvalidLastNameRepeatVeryInvalidLastNameRepeat") - .addCommunicationProviders( - AuthProviderDetails.newBuilder().setAuthenticationType(AuthenticationType.PHONE) - .setAuthenticationProvider("BG:+359881236548").build()) - .build(); + .setLastName("VeryInvalidLastNameRepeatVeryInvalidLastNameRepeatVeryInvalidLastNameRepeat").build(); final AccountServiceGrpc.AccountServiceBlockingStub accountServiceBlockingStub = AccountServiceGrpc .newBlockingStub(Optional.ofNullable(channel).orElse(inProcChannel)); final AccountResponse respose = accountServiceBlockingStub.completePendingAccountCreation(request); @@ -599,9 +585,6 @@ public class AccountServiceTests extends GrpcServerTestBase { public void testCompletePendingAccountCreationCreatedAccountIsNull() { final CompletePendingAccountCreationRequest request = CompletePendingAccountCreationRequest.newBuilder() .setAccountId(Util.ACCOUNT_ID.toString()).setUsername(Util.USERNAME).setFirstName(Util.FIRST_NAME) - .addCommunicationProviders( - AuthProviderDetails.newBuilder().setAuthenticationType(AuthenticationType.PHONE) - .setAuthenticationProvider("BG:+359881236548").build()) .build(); given(accountRepositoryAdditional diff --git a/src/test/java/biz/nynja/account/utils/Util.java b/src/test/java/biz/nynja/account/utils/Util.java index 90086fa491eddabd6a24549d313ee2ae88f0f952..775a457d8bfb7599caf990c2bc81c052d92c3fd8 100644 --- a/src/test/java/biz/nynja/account/utils/Util.java +++ b/src/test/java/biz/nynja/account/utils/Util.java @@ -17,6 +17,7 @@ import biz.nynja.account.models.Account; import biz.nynja.account.models.AccountByAuthenticationProvider; import biz.nynja.account.models.AccountByProfileId; import biz.nynja.account.models.AuthenticationProvider; +import biz.nynja.account.models.ContactInfo; import biz.nynja.account.models.Profile; import biz.nynja.account.models.ProfileByAuthenticationProvider; import biz.nynja.account.models.PendingAccount; @@ -43,7 +44,7 @@ public class Util { public static final long CREATION_TIMESTAMP = 45; public static final long EXISTING_PENDING_ACCOUNT_TIMESTAMP_UPDATED = 65; public static final long LAST_UPDATE_TIMESTAMP = 80; - public static final Set COMMUNICATION_PROVIDERS = new HashSet(); + public static final Set CONTACTS_INFO = new HashSet(); public static final String QR_CODE = "QRcode"; public static final String EMAIL = "email@test.com"; public static final String USERNAME = "jdoe"; @@ -139,7 +140,7 @@ public class Util { account.setUsername(USERNAME); account.setCreationTimestamp(CREATION_TIMESTAMP); account.setLastUpdateTimestamp(LAST_UPDATE_TIMESTAMP); - account.setCommunicationProviders(COMMUNICATION_PROVIDERS); + account.setContactsInfo(CONTACTS_INFO); account.setQrCode(QR_CODE); return account; }