Skip to content

Commit

Permalink
Merge pull request #57 from PEC-CSS/feature/edit_user_API
Browse files Browse the repository at this point in the history
  • Loading branch information
harshjohar authored Oct 12, 2023
2 parents 1fe69a7 + dae0acf commit 39e6e75
Showing 1 changed file with 30 additions and 8 deletions.
38 changes: 30 additions & 8 deletions src/main/java/com/pecacm/backend/services/UserService.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.UUID;
import java.util.*;

@Service
public class UserService implements UserDetailsService {
Expand Down Expand Up @@ -123,10 +120,35 @@ public User updateUser(User updatedUser, String email) {
if (user.isEmpty() || !Objects.equals(user.get().getEmail(), email)) {
throw new AcmException("User cannot be updated", HttpStatus.BAD_REQUEST);
}
updatedUser.setId(user.get().getId());
updatedUser.setEmail(user.get().getEmail());
return userRepository.save(updatedUser);

User existingUser = user.get();

//User can only change these: name, branch, dp, sid
//TODO: Iterate over fields instead of manually setting each
try {

if (updatedUser.getName() != null) {
existingUser.setName(updatedUser.getName());
}
if (updatedUser.getDp() != null) {
existingUser.setDp(updatedUser.getDp());
}
if (updatedUser.getBranch() != null) {
existingUser.setBranch(updatedUser.getBranch());
}
if (updatedUser.getSid() != null) {
existingUser.setSid(updatedUser.getSid());
existingUser.setBatch(2004 + Math.floorDiv(updatedUser.getSid(), 1000000));
}

return userRepository.save(existingUser);
} catch (Exception ex) {
System.out.println(ex.getMessage());
throw new AcmException("Please fill the details carefully.", HttpStatus.BAD_REQUEST);
}
}

public Page<User> getLeaderboardByBatch(Integer batch, Integer offset, Integer pageSize) { return userRepository.findAllByBatch(batch, PageRequest.of(offset, pageSize)); }
public Page<User> getLeaderboardByBatch(Integer batch, Integer offset, Integer pageSize) {
return userRepository.findAllByBatch(batch, PageRequest.of(offset, pageSize));
}
}

0 comments on commit 39e6e75

Please sign in to comment.