fix(exam-correct): add XSRF token to post header

This commit is contained in:
Sarah Vaupel 2020-01-13 10:46:11 +01:00
parent 6727dff2ef
commit 2b3046164f
4 changed files with 39 additions and 9 deletions

View File

@ -3,9 +3,12 @@ import { StorageManager, LOCATION } from '../../lib/storage-manager/storage-mana
import './exam-correct.sass';
import Cookies from 'js-cookie';
import moment from 'moment';
const EXAM_CORRECT_URL_POST = 'correct';
const EXAM_CORRECT_IDENT = 'uw-exam-correct';
const EXAM_CORRECT_PART_INPUT_ATTR = 'uw-exam-correct--part-input';
const EXAM_CORRECT_SEND_BTN_ID = 'exam-correct__send-btn';
@ -89,13 +92,13 @@ export class ExamCorrect {
});
// abort send if there are no results (after validation)
if (results === {}) return;
if (Object.keys(results).length <= 0) return;
console.log(participant, results);
console.log('input validated, proceeding', participant, results);
// TODO apply row and data classes
// (maybe create some sort of template for this instead)
// TODO create and use template for this
const correctionRow = document.createElement('TR');
correctionRow.classList.add('table__row');
const dateTD = document.createElement('TD');
dateTD.appendChild(document.createTextNode(moment().format()));
const participantTD = document.createElement('TD');
@ -107,27 +110,35 @@ export class ExamCorrect {
partTD.appendChild(document.createTextNode(results[partKey]));
return partTD;
});
[dateTD,participantTD,...partTDs].forEach((td) => correctionRow.appendChild(td));
[dateTD,participantTD,...partTDs].forEach((td) => {
td.classList.add('table__td');
correctionRow.appendChild(td);
});
const tableBody = this._element.querySelector(`tbody:not(#${EXAM_CORRECT_INPUT_BODY_ID})`);
tableBody.insertBefore(correctionRow, tableBody.firstChild);
// clear input values on validation success
// TODO only clear input on post success
[this._participantInput, ...this._partInputs].forEach(clearInput);
const url = 'TODO';
const headers = {};
const url = EXAM_CORRECT_URL_POST;
const headers = {
'X-XSRF-TOKEN': Cookies.get('XSRF-TOKEN'),
};
const body = {
participant: participant,
results: results,
};
console.log('body', body);
this._app.httpClient.post({
url: url,
headers: headers,
body: body,
}).then(
(response) => response.json()
).then(
// (response) => response.json()
//).then(
(response) => this._processResponse(response, participant)
).catch((error) => {
console.error('Error while processing response', error);

5
package-lock.json generated
View File

@ -9767,6 +9767,11 @@
}
}
},
"js-cookie": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz",
"integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ=="
},
"js-levenshtein": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",

View File

@ -108,6 +108,7 @@
"@babel/runtime": "^7.7.6",
"@juggle/resize-observer": "^2.5.0",
"core-js": "^3.4.8",
"js-cookie": "^2.2.1",
"moment": "^2.24.0",
"npm": "^6.13.4",
"tail.datetime": "git+ssh://git@gitlab2.rz.ifi.lmu.de/uni2work/tail.DateTime.git#master",

View File

@ -739,5 +739,18 @@
"usedIds": []
}
}
],
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/exam-correct/exam-correct.sass": [
{
"modules": {
"byIdentifier": {},
"usedIds": {}
},
"chunks": {
"byName": {},
"bySource": {},
"usedIds": []
}
}
]
}