Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Backend] Check for Achievements #203

Open
wants to merge 1 commit into
base: development
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions src/node-backend/controller/homework-controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,25 @@ import {
import * as dbAdapter from "../adapters/database-adapter.js";
import {checkForAchievement} from "../adapters/database-adapter.js";

const queryResult= " SELECT COUNT( taskStatus) AS type FROM tasks, taskstatus WHERE assignedToStudent='student2' AND (taskStatus = 'done' OR taskStatus = 'finished' OR taskStatus = 'gradings')";
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the query should be in the database-adapter file


export async function checkAchievements(username) {
// check for achievements in database
try{

const queryResult = await dbAdapter.checkForAchievement(username);
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

look at the function checkForAchievement in the database-adapter file, your query string and the pool.query call should be in there :) otherwise this is correct

return pool.query(queryResult, [username]);
// now you need to check if what your query returns fulfills the achievement:
// for example, if you want to know if the student has at least one finished article, and your query returns all finished articles of the student,
// you need to check if the length of the query result is at least 1
// you need to check if the length of the query result is at least 1
if (queryResult.length >= 1) {
// achievement condition is met, so you create the object for the achievement and return it
console( queryResult + "Success viewed.")
return [Achievement.FirstArticle];
} else {
// achievement condition is not met, so you return the empty list
return [];
}
}}
}


Expand Down