Skip to content

Commit

Permalink
Show card's rating according to conducted sessions #14 #18 #7
Browse files Browse the repository at this point in the history
  • Loading branch information
SMore-Napi committed Jan 12, 2022
1 parent 09d5d84 commit e35fdb2
Show file tree
Hide file tree
Showing 12 changed files with 93 additions and 236 deletions.
10 changes: 0 additions & 10 deletions src/main/java/innotutor/innotutor_backend/entity/card/Card.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ public class Card { //NOPMD - suppressed ShortClassName - It has the same databa
private Request requestByCardId;
private Service serviceByCardId;
private Collection<CardEnroll> cardEnrollsByCardId;
private Collection<CardRating> cardRatingsByCardId;
private Collection<CardSessionFormat> cardSessionFormatsByCardId;
private Collection<CardSessionType> cardSessionTypesByCardId;

Expand Down Expand Up @@ -152,15 +151,6 @@ public void setCardEnrollsByCardId(final Collection<CardEnroll> cardEnrollsByCar
this.cardEnrollsByCardId = cardEnrollsByCardId;
}

@OneToMany(mappedBy = CARD_BY_CARD_ID)
public Collection<CardRating> getCardRatingsByCardId() {
return cardRatingsByCardId;
}

public void setCardRatingsByCardId(final Collection<CardRating> cardRatingsByCardId) {
this.cardRatingsByCardId = cardRatingsByCardId;
}

@OneToMany(mappedBy = CARD_BY_CARD_ID)
public Collection<CardSessionFormat> getCardSessionFormatsByCardId() {
return cardSessionFormatsByCardId;
Expand Down
145 changes: 0 additions & 145 deletions src/main/java/innotutor/innotutor_backend/entity/card/CardRating.java

This file was deleted.

11 changes: 0 additions & 11 deletions src/main/java/innotutor/innotutor_backend/entity/user/User.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package innotutor.innotutor_backend.entity.user;

import innotutor.innotutor_backend.entity.card.CardRating;
import innotutor.innotutor_backend.entity.card.enrollment.CardEnroll;
import innotutor.innotutor_backend.entity.session.Session;
import innotutor.innotutor_backend.entity.session.SessionRating;
Expand Down Expand Up @@ -29,7 +28,6 @@ public class User { //NOPMD - suppressed ShortClassName - It has the same databa
private Timestamp creationDate;
private Timestamp lastUpdate;
private Collection<CardEnroll> cardEnrollsByUserId;
private Collection<CardRating> cardRatingsByUserId;
private Collection<SessionRating> sessionRatingsByUserId;
private Collection<Request> requestsByUserId;
private Collection<Service> servicesByUserId;
Expand Down Expand Up @@ -199,15 +197,6 @@ public void setCardEnrollsByUserId(final Collection<CardEnroll> cardEnrollsByUse
this.cardEnrollsByUserId = cardEnrollsByUserId;
}

@OneToMany(mappedBy = "userByUserId", cascade = CascadeType.ALL)
public Collection<CardRating> getCardRatingsByUserId() {
return cardRatingsByUserId;
}

public void setCardRatingsByUserId(final Collection<CardRating> cardRatingsByUserId) {
this.cardRatingsByUserId = cardRatingsByUserId;
}

@OneToMany(mappedBy = "userByUserId", cascade = CascadeType.ALL)
public Collection<SessionRating> getSessionRatingsByUserId() {
return sessionRatingsByUserId;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import innotutor.innotutor_backend.repository.session.SessionFormatRepository;
import innotutor.innotutor_backend.repository.session.SessionTypeRepository;
import innotutor.innotutor_backend.repository.user.UserRepository;
import innotutor.innotutor_backend.service.utility.card.CardCreatorId;
import innotutor.innotutor_backend.service.utility.card.CardCreatorUser;
import innotutor.innotutor_backend.service.utility.sessionconverter.sessionformat.CardEnrollSessionFormatConverter;
import innotutor.innotutor_backend.service.utility.sessionconverter.sessionformat.CardSessionFormatConverter;
import innotutor.innotutor_backend.service.utility.sessionconverter.sessiontype.CardEnrollSessionTypeConverter;
Expand Down Expand Up @@ -55,7 +55,7 @@ public EnrollmentDTO postCardEnroll(final EnrollmentDTO enrollmentDTO) {
final Optional<User> userOptional = userRepository.findById(enrollerId);
if (cardOptional.isPresent() && userOptional.isPresent()) {
final Card card = cardOptional.get();
if (!enrollerId.equals(new CardCreatorId(card).creatorId()) && isUniquePair(enrollerId, cardId)) {
if (!enrollerId.equals(new CardCreatorUser(card).creatorId()) && isUniquePair(enrollerId, cardId)) {
final List<String> sessionFormats = this.getCommonSessionFormats(card, enrollmentDTO);
final List<String> sessionTypes = this.getCommonSessionTypes(card, enrollmentDTO);
if (!sessionFormats.isEmpty() && !sessionTypes.isEmpty()) {
Expand Down
19 changes: 9 additions & 10 deletions src/main/java/innotutor/innotutor_backend/service/CardService.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,9 @@
import innotutor.innotutor_backend.repository.user.RequestRepository;
import innotutor.innotutor_backend.repository.user.ServiceRepository;
import innotutor.innotutor_backend.repository.user.UserRepository;
import innotutor.innotutor_backend.service.utility.card.CardCreatorId;
import innotutor.innotutor_backend.service.utility.card.CardCreatorUser;
import innotutor.innotutor_backend.service.utility.card.CardDTOCreator;
import innotutor.innotutor_backend.service.utility.card.CardType;
import innotutor.innotutor_backend.service.utility.cardmanager.CardCreator;
import innotutor.innotutor_backend.service.utility.cardmanager.CardUpdater;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
Expand All @@ -42,9 +41,9 @@ public CardDTO getCardById(final Long cardId, final Long userId) {
final Optional<Card> cardOptional = cardRepository.findById(cardId);
if (cardOptional.isPresent()) {
final Card card = cardOptional.get();
final Long creatorId = new CardCreatorId(card).creatorId();
if (!card.getHidden() || userId.equals(creatorId)) {
return new CardDTOCreator(card, creatorId, cardEnrollService, userId).create();
final User creator = new CardCreatorUser(card).creator();
if (!card.getHidden() || userId.equals(creator.getUserId())) {
return new CardDTOCreator(card, creator, cardEnrollService, userId).create();
}
}
return null;
Expand All @@ -54,14 +53,14 @@ public UserCard getCardFullInfoById(final Long cardId, final Long userId) {
final Optional<Card> cardOptional = cardRepository.findById(cardId);
if (cardOptional.isPresent()) {
final Card card = cardOptional.get();
final Long creatorId = new CardCreatorId(card).creatorId();
if (!card.getHidden() || userId.equals(creatorId)) {
final User creator = new CardCreatorUser(card).creator();
if (!card.getHidden() || userId.equals(creator.getUserId())) {
innotutor.innotutor_backend.entity.user.Service service = card.getServiceByCardId();
Request request = card.getRequestByCardId();
if (service != null) {
return new CardDTOCreator(card, creatorId, cardEnrollService, userId).createTutorCvDTO();
return new CardDTOCreator(card, creator, cardEnrollService, userId).createTutorCvDTO();
} else if (request != null) {
return new CardDTOCreator(card, creatorId, cardEnrollService, userId).createStudentRequestDTO();
return new CardDTOCreator(card, creator, cardEnrollService, userId).createStudentRequestDTO();
}
}
}
Expand Down Expand Up @@ -105,7 +104,7 @@ public boolean deleteCardById(final Long cardId, final Long userId) {

private CardDTO postCard(final CardType cardType, final CardDTO cardDTO, final Long userId) {
cardDTO.setCreatorId(userId);
return new CardCreator(cardDTO,
return new innotutor.innotutor_backend.service.utility.cardmanager.CardCreator(cardDTO,
cardType,
cardRepository,
userRepository,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public List<CardDTO> getServices(final Long userId) { //NOPMD - suppressed Retur
services.add(
new CardDTOCreator(
service.getCardByCardId(),
user.getUserId(),
user,
cardEnrollService,
userId).create()
)
Expand All @@ -51,7 +51,7 @@ public List<CardDTO> getRequests(final Long userId) { //NOPMD - suppressed Retur
user.getRequestsByUserId().forEach(request ->
requests.add(
new CardDTOCreator(request.getCardByCardId(),
user.getUserId(),
user,
cardEnrollService,
userId).create()
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,18 @@
import innotutor.innotutor_backend.dto.searcher.StudentRequestDTO;
import innotutor.innotutor_backend.dto.searcher.TutorCvDTO;
import innotutor.innotutor_backend.dto.searcher.UserCard;
import innotutor.innotutor_backend.entity.card.CardRating;
import innotutor.innotutor_backend.entity.user.User;
import innotutor.innotutor_backend.repository.card.CardRepository;
import innotutor.innotutor_backend.service.utility.card.AverageCardRating;
import innotutor.innotutor_backend.service.utility.card.Ratings;
import innotutor.innotutor_backend.service.utility.sessionconverter.sessionformat.CardSessionFormatConverter;
import innotutor.innotutor_backend.service.utility.sessionconverter.sessiontype.CardSessionTypeConverter;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.*;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

@Service
Expand Down Expand Up @@ -78,17 +80,17 @@ private List<TutorCvDTO> getAllTutorCvDTOList(final Long userId) {
final List<TutorCvDTO> tutors = new ArrayList<>();
cardRepository.findByHidden(false).forEach(card -> {
if (card.getServiceByCardId() != null) {
final Collection<CardRating> ratings = card.getCardRatingsByCardId();
final User tutor = card.getServiceByCardId().getUserByTutorId();
final Long cardId = card.getCardId();
Ratings ratings = new Ratings(tutor, card.getSubjectId());
tutors.add(
new TutorCvDTO(
tutor.getUserId(),
tutor.getName(),
tutor.getSurname(),
cardId,
new AverageCardRating(ratings).averageRating(),
ratings.size(),
ratings.averageRating(),
ratings.countVoted(),
card.getDescription(),
card.getSubjectBySubjectId().getName(),
new CardSessionFormatConverter(card.getCardSessionFormatsByCardId()).stringList(),
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package innotutor.innotutor_backend.service.utility.card;

import innotutor.innotutor_backend.entity.card.Card;
import innotutor.innotutor_backend.entity.user.User;

public class CardCreatorId {
public class CardCreatorUser {
private final transient Card card;

public CardCreatorId(final Card card) {
public CardCreatorUser(final Card card) {
this.card = card;
}

Expand All @@ -18,4 +19,14 @@ public Long creatorId() {
}
return null;
}

public User creator() {
if (card.getServiceByCardId() != null) {
return card.getServiceByCardId().getUserByTutorId();
}
if (card.getRequestByCardId() != null) {
return card.getRequestByCardId().getUserByStudentId();
}
return null;
}
}

0 comments on commit e35fdb2

Please sign in to comment.