FEATURE: New 'Reviewable' model to make reviewable items generic

Includes support for flags, reviewable users and queued posts, with REST API
backwards compatibility.

Co-Authored-By: romanrizzi <romanalejandro@gmail.com>
Co-Authored-By: jjaffeux <j.jaffeux@gmail.com>
This commit is contained in:
Robin Ward
2019-01-03 12:03:01 -05:00
parent 9a56b398a1
commit b58867b6e9
354 changed files with 8090 additions and 5225 deletions

View File

@ -1,18 +1,15 @@
import storePretender from "helpers/store-pretender";
import fixturePretender from "helpers/fixture-pretender";
import flagPretender from "helpers/flag-pretender";
export function parsePostData(query) {
const result = {};
query.split("&").forEach(function(part) {
const item = part.split("=");
const firstSeg = decodeURIComponent(item[0]);
const m = /^([^\[]+)\[([^\]]+)\]/.exec(firstSeg);
const m = /^([^\[]+)\[(.+)\]/.exec(firstSeg);
const val = decodeURIComponent(item[1]).replace(/\+/g, " ");
if (m) {
result[m[1]] = result[m[1]] || {};
result[m[1]][m[2]] = val;
let key = m[1];
result[key] = result[key] || {};
result[key][m[2].replace("][", ".")] = val;
} else {
result[firstSeg] = val;
}
@ -38,9 +35,16 @@ export let fixturesByUrl;
export default function() {
const server = new Pretender(function() {
storePretender.call(this, helpers);
flagPretender.call(this, helpers);
fixturesByUrl = fixturePretender.call(this, helpers);
// Autoload any `*-pretender` files
Object.keys(requirejs.entries).forEach(e => {
let m = e.match(/^helpers\/([a-z]+)\-pretender$/);
if (m && m[1] !== "create") {
let result = requirejs(e).default.call(this, helpers);
if (m[1] === "fixture") {
fixturesByUrl = result;
}
}
});
this.get("/admin/plugins", () => response({ plugins: [] }));