Skip to content

Commit

Permalink
avniproject/avni-webapp#1214 - use fake numbers in test. provide regi…
Browse files Browse the repository at this point in the history
…on for the web app.
  • Loading branch information
petmongrels committed May 23, 2024
1 parent a25b167 commit f0d891a
Show file tree
Hide file tree
Showing 11 changed files with 54 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
@BatchSize(size = 100)
public class Account {
public static final String DEFAULT_ACCOUNT_NAME = "default";
public static final String DEFAULT_REGION = "IN";

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class Organisation extends ETLEntity {
@Column
private String usernameSuffix;

@ManyToOne(fetch = FetchType.LAZY)
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "account_id", nullable = false)
private Account account;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import org.avni.server.domain.UserContext;

public class UserContextHolder {
private static ThreadLocal<UserContext> userContext = new ThreadLocal<>();
private static final ThreadLocal<UserContext> userContext = new ThreadLocal<>();

private UserContextHolder() {
}
Expand All @@ -22,6 +22,7 @@ public static void clear() {
userContext.remove();
}

// Any child entity of user not eagerly loaded may give no session error
public static User getUser() {
UserContext context = getUserContext();
return context != null ? context.getUser() : null;
Expand All @@ -32,6 +33,7 @@ public static Long getUserId() {
return user == null ? null : user.getId();
}

// Any child entity of organisation not eagerly loaded may give no session error
public static Organisation getOrganisation() {
UserContext context = getUserContext();
return context != null ? context.getOrganisation() : null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ private Map<String, Object> toPhoneNumberFormat(String phoneNumber, List<String>
errorMsgs.add(format("Invalid %s provided %s. Please provide valid phone number.", conceptName, phoneNumber));
return null;
}
phoneNumberObs.put("phoneNumber", PhoneNumberUtil.getDomesticPhoneNumber(phoneNumber));
phoneNumberObs.put("phoneNumber", PhoneNumberUtil.getNationalPhoneNumber(phoneNumber));
phoneNumberObs.put("verified", false);
return phoneNumberObs;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -459,7 +459,7 @@ public Optional<Individual> findByPhoneNumber(String phoneNumber) {
if (!phoneNumberConcept.isPresent()) {
phoneNumberConcept = conceptService.findContactNumberConcept();
}
phoneNumber = PhoneNumberUtil.getDomesticPhoneNumber(phoneNumber);
phoneNumber = PhoneNumberUtil.getNationalPhoneNumber(phoneNumber);
return phoneNumberConcept.isPresent()
? individualRepository.findByConceptWithMatchingPattern(phoneNumberConcept.get(), "%" + phoneNumber)
: Optional.empty();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public static String getPhoneNumberInGlificFormat(String phoneNumber) {
return PhoneNumberUtil.getStandardFormatPhoneNumber(phoneNumber).replace("+", "");
}

public static String getDomesticPhoneNumber(String phoneNumber) {
public static String getNationalPhoneNumber(String phoneNumber) {
Phonenumber.PhoneNumber pn = getPhoneNumber(phoneNumber);
return "" + pn.getNationalNumber();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ public UserInfoWebResponse getUserInfo() {
groupPrivilegeResponses,
user.hasAllPrivileges(),
lastSessionTime,
contextOrganisation.getCategory());
contextOrganisation.getCategory(),
contextOrganisation.getAccount().getRegion()
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ public class OrganisationContract extends ETLContract {
private String usernameSuffix;
private Long accountId;
private OrganisationCategory category;
private String region;

public static OrganisationContract fromEntity(Organisation organisation) {
OrganisationContract organisationContract = new OrganisationContract();
Expand All @@ -19,6 +20,7 @@ public static OrganisationContract fromEntity(Organisation organisation) {
organisationContract.setUsernameSuffix(organisation.getEffectiveUsernameSuffix());
organisationContract.setAccountId(organisation.getAccount() == null ? null : organisation.getAccount().getId());
organisationContract.setCategory(organisation.getCategory());
organisationContract.region = organisation.getAccount().getRegion();
mapEntity(organisationContract, organisation);
return organisationContract;
}
Expand Down Expand Up @@ -62,4 +64,12 @@ public OrganisationCategory getCategory() {
public void setCategory(OrganisationCategory category) {
this.category = category;
}

public String getRegion() {
return region;
}

public void setRegion(String region) {
this.region = region;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.avni.server.web.response;

import org.avni.server.domain.Account;
import org.avni.server.domain.JsonObject;
import org.avni.server.domain.Organisation;
import org.avni.server.domain.User;
Expand All @@ -9,6 +10,7 @@
import java.util.List;

public class UserInfoWebResponse extends UserInfoContract {
private String region;
private OrganisationCategory organisationCategory;
private long lastSessionTime;
private boolean hasAllPrivileges;
Expand All @@ -30,16 +32,20 @@ public static UserInfoWebResponse createForAdminUser(List<UserPrivilegeWebRespon
response.setOrganisationName(contextOrganisation.getName());
response.setUsernameSuffix(contextOrganisation.getEffectiveUsernameSuffix());
response.organisationCategory = contextOrganisation.getCategory();
response.region = contextOrganisation.getAccount().getRegion();
} else {
response.region = Account.DEFAULT_REGION; // current cannot support multiple regions for super admins
}
return response;
}

public UserInfoWebResponse(String username, String orgName, Long orgId, String usernameSuffix, JsonObject settings, String name, String catchmentName, JsonObject syncSettings, List<UserPrivilegeWebResponse> privileges, boolean hasAllPrivileges, long lastSessionTime, OrganisationCategory organisationCategory) {
public UserInfoWebResponse(String username, String orgName, Long orgId, String usernameSuffix, JsonObject settings, String name, String catchmentName, JsonObject syncSettings, List<UserPrivilegeWebResponse> privileges, boolean hasAllPrivileges, long lastSessionTime, OrganisationCategory organisationCategory, String region) {
super(username, orgName, orgId, usernameSuffix, settings, name, catchmentName, syncSettings);
this.privileges = privileges;
this.hasAllPrivileges = hasAllPrivileges;
this.lastSessionTime = lastSessionTime;
this.organisationCategory = organisationCategory;
this.region = region;
}

public List<UserPrivilegeWebResponse> getPrivileges() {
Expand All @@ -65,4 +71,8 @@ public void setLastSessionTime(long lastSessionTime) {
public OrganisationCategory getOrganisationCategory() {
return organisationCategory;
}

public String getRegion() {
return region;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,27 +10,31 @@ public class PhoneNumberTest {
@Test
public void checkOutFeatures() throws NumberParseException {
PhoneNumberUtil instance = PhoneNumberUtil.getInstance();
assertTrue(isValidNumber(instance, "919245262929"));
assertTrue(isValidNumber(instance, "91 9245262929"));
assertTrue(isValidNumber(instance, "+91 9245262929"));
assertTrue(isValidNumber(instance, "+919245262929"));
assertTrue(isValidNumber(instance, "+ 91 9245262929"));
assertTrue(isValidNumber(instance, "9245262929"));
assertTrue(isValidNumber(instance, "09245262929"));
assertTrue(isValidNumber(instance, " 09245262929 "));
assertTrue(isValidNumber(instance, " 09245262929"));
assertTrue(isValidNumber(instance, " + 91 9245262929"));
assertTrue(isValidNumber(instance, "919455509147"));
assertTrue(isValidNumber(instance, "91 9455509147"));
assertTrue(isValidNumber(instance, "+91 9455509147"));
assertTrue(isValidNumber(instance, "+919455509147"));
assertTrue(isValidNumber(instance, "+ 91 9455509147"));
assertTrue(isValidNumber(instance, "9455509147"));
assertTrue(isValidNumber(instance, "09455509147"));
assertTrue(isValidNumber(instance, " 09455509147 "));
assertTrue(isValidNumber(instance, " 09455509147"));
assertTrue(isValidNumber(instance, " + 91 9455509147"));
assertTrue(isValidNumber(instance, " + 91 080 24242424"));
assertTrue(isValidNumber(instance, " + 91 080 24242424 "));

assertFalse(isValidNumber(instance, "92452629290"));
assertFalse(isValidNumber(instance, "452629290"));
assertFalse(isValidNumber(instance, "+95 9245262929"));
assertFalse(isValidNumber(instance, "94555091470"));
assertFalse(isValidNumber(instance, "945550914"));
assertFalse(isValidNumber(instance, "+99 9455509147"));

assertEquals("+919245262929", instance.format(instance.parse("9245262929", "IN"), PhoneNumberUtil.PhoneNumberFormat.E164));
assertEquals("+919455509147", instance.format(instance.parse("9455509147", "IN"), PhoneNumberUtil.PhoneNumberFormat.E164));
}

private static boolean isValidNumber(PhoneNumberUtil instance, String number) throws NumberParseException {
return instance.isValidNumber(instance.parse(number, "IN"));
try {
return instance.isValidNumber(instance.parse(number, "IN"));
} catch (NumberParseException e) {
return false;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ public void checkFormats() {
UserContext userContext = new UserContextBuilder().withOrganisation(organisation).build();
UserContextHolder.create(userContext);

assertEquals("919245262929", PhoneNumberUtil.getPhoneNumberInGlificFormat("9245262929"));
assertEquals("9245262929", PhoneNumberUtil.getDomesticPhoneNumber("9245262929"));
assertEquals("+919245262929", PhoneNumberUtil.getStandardFormatPhoneNumber("9245262929"));
assertEquals("919455509147", PhoneNumberUtil.getPhoneNumberInGlificFormat("9455509147"));
assertEquals("9455509147", PhoneNumberUtil.getNationalPhoneNumber("9455509147"));
assertEquals("+919455509147", PhoneNumberUtil.getStandardFormatPhoneNumber("9455509147"));
}
}

0 comments on commit f0d891a

Please sign in to comment.