/** * Retrieves the information about the current user/personal profile contained within the * FreeAgent authorised account. * * @return The current user/personal profile or null if the profile could not be obtained. */ public FreeAgentUser getPersonalProfile() { FreeAgentUserWrapper userWrapper = freeAgentServiceInstance.getCurrentUser(); if (userWrapper != null) { return userWrapper.getUser(); } return null; }
/** * Returns a list of all the known users contained within FreeAgent for the authorised account. * * @return A list of User instances. */ public List<FreeAgentUser> getUsers() { FreeAgentUserWrapper usersWrapper = freeAgentServiceInstance.getUsers(); if (usersWrapper != null) { return usersWrapper.getUsers(); } return null; }
/** * Retrieves the users that matches the specified id. * * @param userId The id to match. * @return A User instance or null if the id supplied was invalid or could not be matched. */ public FreeAgentUser getUser(String userId) { if (userId != null && !userId.isEmpty()) { FreeAgentUserWrapper userWrapper = freeAgentServiceInstance.getUser(userId); if (userWrapper != null) { return userWrapper.getUser(); } } return null; }
/** * Attempts to create a new user entry in the associated FreeAgent account. * * <p>Will return null if the user instance provided is null or cannot be saved into the account. * * @param user The populated user instance. * @return The updated user instance or null. */ public FreeAgentUser createUser(FreeAgentUser user) { if (user != null) { FreeAgentUserWrapper userWrapper = freeAgentServiceInstance.createUser(new FreeAgentUserWrapper(user)); if (userWrapper != null) { return userWrapper.getUser(); } } return null; }
/** * Attempts to import a new user into the associated FreeAgent account by deserialising the * specified JSON user information and requesting a new user be created. * * <p>NOTE: The import (creation within FreeAgent) will only be actioned if no URL property is * present or if the URL property is not populated. Otherwise null will be returned. * * @param userJSON A string containing user information in FreeAgent friendly format. * @return The newly populated user instance that has been imported into FreeAgent or null. * @throws JsonSyntaxException If the format does not match the FreeAgent V2 User format. */ public FreeAgentUser importUser(String userJSON) throws JsonSyntaxException { if (userJSON == null || userJSON.isEmpty()) { return null; } FreeAgentUser user = buildUser(userJSON); if (user != null && (user.getUrl() == null || user.getUrl().isEmpty())) { FreeAgentUserWrapper userWrapper = freeAgentServiceInstance.createUser(new FreeAgentUserWrapper(user)); if (userWrapper != null) { return userWrapper.getUser(); } } return null; }