Skip to content

Commit 6d2d919

Browse files
committed
get user events by email
1 parent d9402ce commit 6d2d919

File tree

2 files changed

+36
-5
lines changed

2 files changed

+36
-5
lines changed

src/main/java/com/pecacm/backend/controllers/UserController.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.pecacm.backend.constants.Constants;
44
import com.pecacm.backend.entities.Transaction;
5-
import com.pecacm.backend.entities.Event;
65
import com.pecacm.backend.entities.User;
76
import com.pecacm.backend.entities.VerificationToken;
87
import com.pecacm.backend.enums.EventRole;
@@ -13,10 +12,9 @@
1312
import com.pecacm.backend.response.RegisterResponse;
1413
import com.pecacm.backend.response.UserEventDetails;
1514
import com.pecacm.backend.services.EmailService;
16-
import com.pecacm.backend.services.VerificationService;
1715
import com.pecacm.backend.services.JwtService;
1816
import com.pecacm.backend.services.UserService;
19-
import org.springframework.data.domain.Page;
17+
import com.pecacm.backend.services.VerificationService;
2018
import org.springframework.http.HttpStatus;
2119
import org.springframework.http.ResponseEntity;
2220
import org.springframework.lang.NonNull;
@@ -192,8 +190,25 @@ public ResponseEntity<List<UserEventDetails>> getEventsForUser(@RequestParam @Nu
192190

193191
}
194192

193+
@GetMapping("/{email}/events")
194+
@PreAuthorize(Constants.HAS_ROLE_CORE_AND_ABOVE)
195+
public ResponseEntity<List<UserEventDetails>> getEventsForUserEmail(@PathVariable String email, @RequestParam @Nullable EventRole eventRole, @RequestParam @Nullable Integer pageSize, @RequestParam @Nullable Integer offset) {
196+
if (offset == null) offset = 0;
197+
if (pageSize == null) pageSize = 20; // returning first 20 users
198+
199+
if (offset < 0) throw new AcmException("offset cannot be < 0", HttpStatus.BAD_REQUEST);
200+
if (pageSize <= 0) throw new AcmException("pageSize must be >= 0", HttpStatus.BAD_REQUEST);
201+
202+
if (eventRole != null) {
203+
return ResponseEntity.ok(userService.getEventsForUserWithRole(email, eventRole, pageSize, offset));
204+
}
205+
206+
return ResponseEntity.ok(userService.getEventsForUser(email, pageSize, offset));
207+
208+
}
209+
195210
@GetMapping("/search")
196-
public List<User> getFilteredUsers(@RequestParam String query, @RequestParam(required = false,defaultValue = "false") Boolean onlyVerified){
197-
return userService.getFilteredUserList(query,onlyVerified);
211+
public List<User> getFilteredUsers(@RequestParam String query, @RequestParam(required = false, defaultValue = "false") Boolean onlyVerified) {
212+
return userService.getFilteredUserList(query, onlyVerified);
198213
}
199214
}

src/main/java/com/pecacm/backend/services/UserService.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,14 @@ public List<User> getLeaderboardByBatch(Integer batch, Integer offset, Integer p
189189

190190
public List<UserEventDetails> getEventsForUserWithRole(EventRole eventRole, Integer pageSize, Integer offset) {
191191
String email = (String) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
192+
return getUserEventDetails(email, eventRole, pageSize, offset);
193+
}
194+
195+
public List<UserEventDetails> getEventsForUserWithRole(String email, EventRole eventRole, Integer pageSize, Integer offset) {
196+
return getUserEventDetails(email, eventRole, pageSize, offset);
197+
}
198+
199+
private List<UserEventDetails> getUserEventDetails(String email, EventRole eventRole, Integer pageSize, Integer offset) {
192200
User user = this.loadUserByUsername(email);
193201
Page<Transaction> transactionsPage = transactionRepository.findByUserIdAndRole(user.getId(), eventRole, PageRequest.of(offset, pageSize));
194202

@@ -205,6 +213,14 @@ public List<UserEventDetails> getEventsForUserWithRole(EventRole eventRole, Inte
205213

206214
public List<UserEventDetails> getEventsForUser(Integer pageSize, Integer offset) {
207215
String email = (String) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
216+
return getUserEventDetails(email, pageSize, offset);
217+
}
218+
219+
public List<UserEventDetails> getEventsForUser(String email,Integer pageSize, Integer offset) {
220+
return getUserEventDetails(email, pageSize, offset);
221+
}
222+
223+
private List<UserEventDetails> getUserEventDetails(String email, Integer pageSize, Integer offset) {
208224
User user = this.loadUserByUsername(email);
209225
Page<Transaction> transactionsPage = transactionRepository.findByUserId(user.getId(), PageRequest.of(offset, pageSize));
210226

0 commit comments

Comments
 (0)