sanifae/src/lib/util.js
2023-02-03 21:54:01 -05:00

54 lines
No EOL
1.4 KiB
JavaScript

let checkLength = function(string, field, lowerBound, upperBound) {
if (string.length < lowerBound) {
if (string.length == 0) {
return { success: `${field} cannot be blank.` }
}
return { success: `${field} is too short (minimum length: ${lowerBound} characters).` }
}
if (string.length > upperBound) {
return { success: `${field} is too long (maximum length: ${upperBound} characters).` }
}
return false;
}
let checkRegex = function(string, field, regex) {
if (string.search(regex) != -1) {
return { success: `${field} contains illegal characters.` }
}
return false;
}
let calcVote = function(up,down) {
var upPadded = up + 3;
var downPadded = down + 3;
var totalPadded = Math.max(up + down, 3);
var rating = -Math.log((1 / ((((upPadded - downPadded) / (upPadded + downPadded)) + 1) / 2)) - 1) / Math.log(Math.E);
rating = Math.min(rating,10);
rating = Math.max(rating,-1);
rating = (rating + 11) / 1.1;
return rating * Math.log(totalPadded);
}
let handleSubmit = async e => {
const ACTION_URL = e.target.action
const formData = new FormData(e.target)
return await fetch(ACTION_URL, {
method: 'POST',
body: formData
}).then(x => x.text());
}
export {
checkLength,
checkRegex,
calcVote,
handleSubmit
};