| Conditions | 9 |
| Total Lines | 92 |
| Code Lines | 86 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 1 | ||
| Bugs | 0 | Features | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | package com.osomapps.pt.token; |
||
| 68 | TokenResponseDTO createOrReadNewToken(TokenRequestDTO tokenRequest, String remoteAddr) { |
||
| 69 | final InUser inUser; |
||
| 70 | final Pair<Boolean, InUserFacebook> inUserFacebookData = |
||
| 71 | readOrCreateInUserFacebook(tokenRequest); |
||
| 72 | final boolean isNewLogin = inUserFacebookData.getFirst(); |
||
| 73 | InUserFacebook inUserFacebook = inUserFacebookData.getSecond(); |
||
| 74 | FacebookResponse facebookResponse = |
||
| 75 | facebookService |
||
| 76 | .getProfileNameAndId(tokenRequest.getFacebook_token()) |
||
| 77 | .orElseThrow( |
||
| 78 | () -> |
||
| 79 | new ResourceNotFoundException( |
||
| 80 | "Can't load data from facebook")); |
||
| 81 | Optional<String> pictureUrl = |
||
| 82 | facebookService.getProfilePictureUrl(tokenRequest.getFacebook_token()); |
||
| 83 | inUserFacebook.setUserId(facebookResponse.getId()); |
||
| 84 | if (inUserFacebook.getUser_name() == null) { |
||
| 85 | inUserFacebook.setUser_name(facebookResponse.getName()); |
||
| 86 | } |
||
| 87 | inUserFacebook.setPicture_url(pictureUrl.orElse(null)); |
||
| 88 | inUserFacebook.setBirthday(facebookResponse.getBirthday()); |
||
| 89 | final List<InUserFacebook> inUserFacebooksNew = |
||
| 90 | inUserFacebookRepository.findByUserId(facebookResponse.getId()); |
||
| 91 | final InUserLogin inUserLogin; |
||
| 92 | if (isNewLogin) { |
||
| 93 | inUserLogin = new InUserLogin(); |
||
| 94 | } else { |
||
| 95 | inUserLogin = |
||
| 96 | inUserFacebook |
||
| 97 | .getInUser() |
||
| 98 | .getInUserLogins() |
||
| 99 | .get(inUserFacebook.getInUser().getInUserLogins().size() - 1); |
||
| 100 | } |
||
| 101 | if (inUserFacebooksNew.isEmpty()) { |
||
| 102 | inUser = new InUser(); |
||
| 103 | inUser.setInUserFacebooks(Arrays.asList(inUserFacebook)); |
||
| 104 | inUser.setInUserLogins(Arrays.asList(inUserLogin)); |
||
| 105 | } else { |
||
| 106 | inUser = inUserFacebooksNew.get(inUserFacebooksNew.size() - 1).getInUser(); |
||
| 107 | inUser.getInUserFacebooks().add(inUserFacebook); |
||
| 108 | inUser.getInUserLogins().add(inUserLogin); |
||
| 109 | } |
||
| 110 | inUser.setD_sex(facebookResponse.getGender()); |
||
| 111 | inUser.setAge(facebookResponse.getAge().floatValue()); |
||
| 112 | inUser.setBirthday(facebookResponse.getBirthday()); |
||
| 113 | inUser.setUpdated(LocalDateTime.now()); |
||
| 114 | final InUser savedInUser = inUserRepository.save(inUser); |
||
| 115 | inUserLogin.setInUser(savedInUser); |
||
| 116 | inUserLogin.setIp_address(remoteAddr); |
||
| 117 | inUserLoginRepository.saveAndFlush(inUserLogin); |
||
| 118 | inUserFacebook.setInUser(inUser); |
||
| 119 | inUserFacebookRepository.save(inUserFacebook); |
||
| 120 | final TokenResponseDTO tokenResponseDTO = new TokenResponseDTO(); |
||
| 121 | tokenResponseDTO.setToken(inUserLogin.getToken()); |
||
| 122 | final UserResponseDTO user = new UserResponseDTO(); |
||
| 123 | user.setId(inUserFacebook.getInUser().getId()); |
||
| 124 | user.setName(inUserFacebook.getUser_name()); |
||
| 125 | user.setAvatar(inUserFacebook.getPicture_url()); |
||
| 126 | user.setGender(facebookResponse.getGender()); |
||
| 127 | user.setAge(facebookResponse.getAge()); |
||
| 128 | user.setBirthday(inUser.getBirthday()); |
||
| 129 | user.setAvatar_dataurl(inUser.getAvatar_dataurl()); |
||
| 130 | if (inUser.getD_level() != null) { |
||
| 131 | user.setLevel(UserLevel.of(Integer.parseInt(inUser.getD_level()))); |
||
| 132 | } |
||
| 133 | user.setGoals( |
||
| 134 | inUser.getInUserGoals().stream() |
||
| 135 | .map( |
||
| 136 | inUserGoal -> { |
||
| 137 | Map<String, Integer> map = null; |
||
| 138 | try { |
||
| 139 | map = |
||
| 140 | inUserGoal.getGoal_value() == null |
||
| 141 | ? null |
||
| 142 | : new ObjectMapper() |
||
| 143 | .readValue( |
||
| 144 | inUserGoal.getGoal_value(), |
||
| 145 | new TypeReference< |
||
| 146 | Map< |
||
| 147 | String, |
||
| 148 | Integer>>() {}); |
||
| 149 | } catch (IOException ex) { |
||
|
|
|||
| 150 | } |
||
| 151 | return new UserGoalResponseDTO() |
||
| 152 | .setId(inUserGoal.getGoalId()) |
||
| 153 | .setValues(map); |
||
| 154 | }) |
||
| 155 | .collect(Collectors.toList())); |
||
| 156 | user.setHeight(inUser.getHeight() == null ? null : inUser.getHeight().longValue()); |
||
| 157 | user.setWeight(inUser.getWeight() == null ? null : inUser.getWeight().longValue()); |
||
| 158 | tokenResponseDTO.setUser(user); |
||
| 159 | return tokenResponseDTO; |
||
| 160 | } |
||
| 179 |