Skip to content

Commit

Permalink
[#12048] Create feedback response question comment db and logic layer (
Browse files Browse the repository at this point in the history
  • Loading branch information
cedricongjh authored and samuelfangjw committed Mar 20, 2023
1 parent 64309bf commit 9cd5e6d
Show file tree
Hide file tree
Showing 3 changed files with 112 additions and 0 deletions.
@@ -0,0 +1,42 @@
package teammates.sqllogic.core;

import java.util.UUID;

import teammates.storage.sqlapi.FeedbackResponseCommentsDb;
import teammates.storage.sqlentity.FeedbackResponseComment;

/**
* Handles operations related to feedback response comments.
*
* @see FeedbackResponseComment
* @see FeedbackResponseCommentsDb
*/
public final class FeedbackResponseCommentsLogic {

private static final FeedbackResponseCommentsLogic instance = new FeedbackResponseCommentsLogic();
private FeedbackResponseCommentsDb frcDb;

private FeedbackResponseCommentsLogic() {
// prevent initialization
}

public static FeedbackResponseCommentsLogic inst() {
return instance;
}

/**
* Initialize dependencies for {@code FeedbackResponseCommentsLogic}.
*/
void initLogicDependencies(FeedbackResponseCommentsDb frcDb) {
this.frcDb = frcDb;
}

/**
* Gets an feedback response comment by feedback response comment id.
* @param id of feedback response comment.
* @return the specified feedback response comment.
*/
public FeedbackResponseComment getFeedbackQuestion(UUID id) {
return frcDb.getFeedbackResponseComment(id);
}
}
3 changes: 3 additions & 0 deletions src/main/java/teammates/sqllogic/core/LogicStarter.java
Expand Up @@ -9,6 +9,7 @@
import teammates.storage.sqlapi.CoursesDb;
import teammates.storage.sqlapi.DeadlineExtensionsDb;
import teammates.storage.sqlapi.FeedbackQuestionsDb;
import teammates.storage.sqlapi.FeedbackResponseCommentsDb;
import teammates.storage.sqlapi.FeedbackResponsesDb;
import teammates.storage.sqlapi.FeedbackSessionsDb;
import teammates.storage.sqlapi.NotificationsDb;
Expand All @@ -33,6 +34,7 @@ public static void initializeDependencies() {
DeadlineExtensionsLogic deadlineExtensionsLogic = DeadlineExtensionsLogic.inst();
FeedbackSessionsLogic fsLogic = FeedbackSessionsLogic.inst();
FeedbackResponsesLogic frLogic = FeedbackResponsesLogic.inst();
FeedbackResponseCommentsLogic frcLogic = FeedbackResponseCommentsLogic.inst();
FeedbackQuestionsLogic fqLogic = FeedbackQuestionsLogic.inst();
NotificationsLogic notificationsLogic = NotificationsLogic.inst();
UsageStatisticsLogic usageStatisticsLogic = UsageStatisticsLogic.inst();
Expand All @@ -47,6 +49,7 @@ public static void initializeDependencies() {
deadlineExtensionsLogic.initLogicDependencies(DeadlineExtensionsDb.inst());
fsLogic.initLogicDependencies(FeedbackSessionsDb.inst(), coursesLogic, frLogic, fqLogic);
frLogic.initLogicDependencies(FeedbackResponsesDb.inst());
frcLogic.initLogicDependencies(FeedbackResponseCommentsDb.inst());
fqLogic.initLogicDependencies(FeedbackQuestionsDb.inst());
notificationsLogic.initLogicDependencies(NotificationsDb.inst());
usageStatisticsLogic.initLogicDependencies(UsageStatisticsDb.inst());
Expand Down
@@ -0,0 +1,67 @@
package teammates.storage.sqlapi;

import static teammates.common.util.Const.ERROR_CREATE_ENTITY_ALREADY_EXISTS;

import java.util.UUID;

import teammates.common.exception.EntityAlreadyExistsException;
import teammates.common.exception.InvalidParametersException;
import teammates.common.util.HibernateUtil;
import teammates.storage.sqlentity.FeedbackResponseComment;

/**
* Handles CRUD operations for feedbackResponseComments.
*
* @see FeedbackResponseComment
*/
public final class FeedbackResponseCommentsDb extends EntitiesDb<FeedbackResponseComment> {

private static final FeedbackResponseCommentsDb instance = new FeedbackResponseCommentsDb();

private FeedbackResponseCommentsDb() {
// prevent initialization
}

public static FeedbackResponseCommentsDb inst() {
return instance;
}

/**
* Gets a feedbackResponseComment or null if it does not exist.
*/
public FeedbackResponseComment getFeedbackResponseComment(UUID frId) {
assert frId != null;

return HibernateUtil.get(FeedbackResponseComment.class, frId);
}

/**
* Creates a feedbackResponseComment.
*/
public FeedbackResponseComment createFeedbackResponseComment(FeedbackResponseComment feedbackResponseComment)
throws InvalidParametersException, EntityAlreadyExistsException {
assert feedbackResponseComment != null;

if (!feedbackResponseComment.isValid()) {
throw new InvalidParametersException(feedbackResponseComment.getInvalidityInfo());
}

if (getFeedbackResponseComment(feedbackResponseComment.getId()) != null) {
throw new EntityAlreadyExistsException(
String.format(ERROR_CREATE_ENTITY_ALREADY_EXISTS, feedbackResponseComment.toString()));
}

persist(feedbackResponseComment);
return feedbackResponseComment;
}

/**
* Deletes a feedbackResponseComment.
*/
public void deleteFeedbackResponseComment(FeedbackResponseComment feedbackResponseComment) {
if (feedbackResponseComment != null) {
delete(feedbackResponseComment);
}
}

}

0 comments on commit 9cd5e6d

Please sign in to comment.