fix(exam-correct): fix request bodies
This commit is contained in:
parent
df0aaca759
commit
0b186a5e1a
@ -152,9 +152,7 @@ export class ExamCorrect {
|
|||||||
|
|
||||||
setStatus(this._userInputStatus, STATUS.LOADING);
|
setStatus(this._userInputStatus, STATUS.LOADING);
|
||||||
|
|
||||||
const body = {
|
const body = this._toRequestBody(this._userInput.value);
|
||||||
user: this._userInput.value,
|
|
||||||
};
|
|
||||||
|
|
||||||
this._app.httpClient.post({
|
this._app.httpClient.post({
|
||||||
url: EXAM_CORRECT_URL_POST,
|
url: EXAM_CORRECT_URL_POST,
|
||||||
@ -211,36 +209,17 @@ export class ExamCorrect {
|
|||||||
|
|
||||||
const rowInfo = {
|
const rowInfo = {
|
||||||
users: [user],
|
users: [user],
|
||||||
results: results,
|
|
||||||
status: STATUS.LOADING,
|
status: STATUS.LOADING,
|
||||||
};
|
};
|
||||||
if (results) rowInfo.results = results;
|
if (results && results !== {}) rowInfo.results = results;
|
||||||
if (result) rowInfo.result = result === 'delete' ? null : result;
|
if (result && result !== 'none') rowInfo.result = result;
|
||||||
this._addRow(rowInfo);
|
this._addRow(rowInfo);
|
||||||
|
|
||||||
// clear inputs on validation success
|
// clear inputs on validation success
|
||||||
this._clearUserInput();
|
this._clearUserInput();
|
||||||
this._partInputs.forEach(clearInput);
|
this._partInputs.forEach(clearInput);
|
||||||
|
|
||||||
const body = {
|
const body = this._toRequestBody(userId || user, results, result);
|
||||||
user: userId || user,
|
|
||||||
};
|
|
||||||
if (results && results !== {}) body.results = results;
|
|
||||||
if (result) {
|
|
||||||
switch (result) {
|
|
||||||
case 'delete': {
|
|
||||||
body.grade = null;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 'attended': {
|
|
||||||
body.grade = { status: this._resultGradeSelect.value };
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
body.grade = { status: result };
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this._app.httpClient.post({
|
this._app.httpClient.post({
|
||||||
url: EXAM_CORRECT_URL_POST,
|
url: EXAM_CORRECT_URL_POST,
|
||||||
@ -318,14 +297,11 @@ export class ExamCorrect {
|
|||||||
date: null,
|
date: null,
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log('response', response);
|
|
||||||
|
|
||||||
const candidateRows = (targetRow && [targetRow]) || [...this._element.rows];
|
const candidateRows = (targetRow && [targetRow]) || [...this._element.rows];
|
||||||
for (let row of candidateRows) {
|
for (let row of candidateRows) {
|
||||||
let userElem = row.cells.item(this._cIndices.get('user'));
|
let userElem = row.cells.item(this._cIndices.get('user'));
|
||||||
const userIdent = userElem && userElem.getAttribute(EXAM_CORRECT_USER_ATTR); // TODO use other attribute identifier
|
const userIdent = userElem && userElem.getAttribute(EXAM_CORRECT_USER_ATTR); // TODO use other attribute identifier
|
||||||
if (userIdent === user) {
|
if (userIdent === user) {
|
||||||
console.log('response-update', row);
|
|
||||||
let status = STATUS.FAILURE;
|
let status = STATUS.FAILURE;
|
||||||
switch (response.status) {
|
switch (response.status) {
|
||||||
case 'success':
|
case 'success':
|
||||||
@ -453,11 +429,7 @@ export class ExamCorrect {
|
|||||||
|
|
||||||
setStatus(statusElem, STATUS.LOADING);
|
setStatus(statusElem, STATUS.LOADING);
|
||||||
|
|
||||||
const body = {
|
const body = this._toRequestBody(listItem.getAttribute(EXAM_CORRECT_USER_ATTR), results.partResults, results.result);
|
||||||
user: listItem.getAttribute(EXAM_CORRECT_USER_ATTR),
|
|
||||||
results: results.partResults,
|
|
||||||
grade: { status: results.result },
|
|
||||||
};
|
|
||||||
|
|
||||||
this._app.httpClient.post({
|
this._app.httpClient.post({
|
||||||
url: EXAM_CORRECT_URL_POST,
|
url: EXAM_CORRECT_URL_POST,
|
||||||
@ -470,7 +442,6 @@ export class ExamCorrect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_addRow(rowInfo) {
|
_addRow(rowInfo) {
|
||||||
console.log('rowInfo', rowInfo);
|
|
||||||
// TODO create and use template for this
|
// TODO create and use template for this
|
||||||
const newRow = document.createElement('TR');
|
const newRow = document.createElement('TR');
|
||||||
newRow.classList.add('table__row');
|
newRow.classList.add('table__row');
|
||||||
@ -513,7 +484,7 @@ export class ExamCorrect {
|
|||||||
const resultCell = document.createElement('TD');
|
const resultCell = document.createElement('TD');
|
||||||
resultCell.colSpan = 2;
|
resultCell.colSpan = 2;
|
||||||
if (rowInfo.result)
|
if (rowInfo.result)
|
||||||
resultCell.innerHTML = rowInfo.result;
|
resultCell.innerHTML = rowInfo.result === 'attended' ? this._resultGradeSelect.value : rowInfo.result;
|
||||||
cells.set(this._cIndices.get('result'), resultCell);
|
cells.set(this._cIndices.get('result'), resultCell);
|
||||||
|
|
||||||
const statusCell = document.createElement('TD');
|
const statusCell = document.createElement('TD');
|
||||||
@ -542,6 +513,40 @@ export class ExamCorrect {
|
|||||||
setStatus(this._userInputStatus, STATUS.NONE);
|
setStatus(this._userInputStatus, STATUS.NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_toRequestBody(user, partResults, examResult) {
|
||||||
|
const body = {
|
||||||
|
user: user,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (partResults && Object.entries(partResults).length !== 0)
|
||||||
|
body.results = partResults;
|
||||||
|
|
||||||
|
if (examResult) {
|
||||||
|
switch (examResult) {
|
||||||
|
case 'none':
|
||||||
|
break;
|
||||||
|
case 'delete':
|
||||||
|
body.grade = null;
|
||||||
|
break;
|
||||||
|
case 'attended':
|
||||||
|
body.grade = { status: examResult, result: { Right: this._resultGradeSelect.value } };
|
||||||
|
break;
|
||||||
|
case 'passed':
|
||||||
|
case 'failed':
|
||||||
|
body.grade = { status: 'attended', result: { Left: examResult } };
|
||||||
|
break;
|
||||||
|
case 'no-show':
|
||||||
|
case 'voided':
|
||||||
|
body.grade = { status: examResult };
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break; // TODO work in progress
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return body;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO move to general util section?
|
// TODO move to general util section?
|
||||||
|
|||||||
Reference in New Issue
Block a user