83 lines
3.1 KiB
JavaScript
83 lines
3.1 KiB
JavaScript
"use strict";
|
|
var __defProp = Object.defineProperty;
|
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
var __export = (target, all) => {
|
|
for (var name in all)
|
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
};
|
|
var __copyProps = (to, from, except, desc) => {
|
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
for (let key of __getOwnPropNames(from))
|
|
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
}
|
|
return to;
|
|
};
|
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
var transactions_exports = {};
|
|
__export(transactions_exports, {
|
|
transactions: () => transactions
|
|
});
|
|
module.exports = __toCommonJS(transactions_exports);
|
|
const transactions = {
|
|
addHistory: (args, env) => {
|
|
const gameHistoryInsertion = env.statements.get(args.gameHistoryInsertion);
|
|
const scoreHistoryInsertion = env.statements.get(args.scoreHistoryInsertion);
|
|
if (!gameHistoryInsertion || !scoreHistoryInsertion)
|
|
throw new Error("Statements not found");
|
|
for (const game of args.history) {
|
|
const { lastInsertRowid } = gameHistoryInsertion.run(
|
|
game.mode,
|
|
game.length,
|
|
game.category,
|
|
game.startTime,
|
|
game.creator,
|
|
Number(game.givesPoints)
|
|
);
|
|
for (const userid in game.scores) {
|
|
scoreHistoryInsertion.run(lastInsertRowid, userid, game.scores[userid]);
|
|
}
|
|
}
|
|
return true;
|
|
},
|
|
editQuestion(args, env) {
|
|
const { oldQuestionText, newQuestionText, newAnswers } = args;
|
|
if (newAnswers) {
|
|
const questionID = env.db.prepare("SELECT question_id FROM trivia_questions WHERE question = ?").get(oldQuestionText)?.question_id;
|
|
if (!questionID)
|
|
throw new Error("Question not found");
|
|
env.db.prepare("DELETE FROM trivia_answers WHERE question_id = ?").run(questionID);
|
|
const insert = env.db.prepare("INSERT INTO trivia_answers (question_id, answer) VALUES (?, ?)");
|
|
for (const answer of newAnswers) {
|
|
insert.run([questionID, answer]);
|
|
}
|
|
}
|
|
if (newQuestionText) {
|
|
env.db.prepare(`UPDATE trivia_questions SET question = ? WHERE question = ?`).run([newQuestionText, oldQuestionText]);
|
|
}
|
|
},
|
|
addQuestions: (args, env) => {
|
|
const questionInsertion = env.statements.get(args.questionInsertion);
|
|
const answerInsertion = env.statements.get(args.answerInsertion);
|
|
if (!questionInsertion || !answerInsertion)
|
|
throw new Error("Statements not found");
|
|
const isSubmissionForSQLite = Number(args.isSubmission);
|
|
for (const question of args.questions) {
|
|
const { lastInsertRowid } = questionInsertion.run(
|
|
question.question,
|
|
question.category,
|
|
question.addedAt,
|
|
question.user,
|
|
isSubmissionForSQLite
|
|
);
|
|
for (const answer of question.answers) {
|
|
answerInsertion.run(lastInsertRowid, answer);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
};
|
|
//# sourceMappingURL=transactions.js.map
|