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 |