From 0d59fe3d2b3ada2867eb73ee26497e0dd3237f6a Mon Sep 17 00:00:00 2001
From: Peter Jaszkowiak
Date: Sun, 21 Feb 2021 23:09:32 -0700
Subject: [PATCH] fix(#9315): api v3 post, put, del JSON
also allow `app.alertError` to be called without an argument
also fix `./nodebb build --dev` to actually build in dev mode
---
public/src/app.js | 2 +-
public/src/modules/api.js | 9 ++++++---
src/cli/index.js | 8 ++++----
3 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/public/src/app.js b/public/src/app.js
index 09079f674c..bafd957b3d 100644
--- a/public/src/app.js
+++ b/public/src/app.js
@@ -179,7 +179,7 @@ app.cacheBuster = null;
};
app.alertError = function (message, timeout) {
- message = message.message || message;
+ message = (message && message.message) || message;
if (message === '[[error:invalid-session]]') {
app.handleInvalidSession();
diff --git a/public/src/modules/api.js b/public/src/modules/api.js
index 076be3a655..d55f9899ba 100644
--- a/public/src/modules/api.js
+++ b/public/src/modules/api.js
@@ -55,7 +55,8 @@ define('api', () => {
api.post = (route, payload, onSuccess) => call({
url: route,
method: 'post',
- data: payload,
+ data: JSON.stringify(payload),
+ contentType: 'application/json; charset=utf-8',
headers: {
'x-csrf-token': config.csrf_token,
},
@@ -64,7 +65,8 @@ define('api', () => {
api.put = (route, payload, onSuccess) => call({
url: route,
method: 'put',
- data: payload,
+ data: JSON.stringify(payload),
+ contentType: 'application/json; charset=utf-8',
headers: {
'x-csrf-token': config.csrf_token,
},
@@ -73,7 +75,8 @@ define('api', () => {
api.del = (route, payload, onSuccess) => call({
url: route,
method: 'delete',
- data: payload,
+ data: JSON.stringify(payload),
+ contentType: 'application/json; charset=utf-8',
headers: {
'x-csrf-token': config.csrf_token,
},
diff --git a/src/cli/index.js b/src/cli/index.js
index 8e1fa90339..84f0ad981d 100644
--- a/src/cli/index.js
+++ b/src/cli/index.js
@@ -95,10 +95,6 @@ nconf.argv(opts).env({
separator: '__',
});
-const env = program.dev ? 'development' : (process.env.NODE_ENV || 'production');
-process.env.NODE_ENV = env;
-global.env = env;
-
prestart.setupWinston();
// Alternate configuration file support
@@ -197,6 +193,10 @@ program
.description(`Compile static assets ${'(JS, CSS, templates, languages)'.red}`)
.option('-s, --series', 'Run builds in series without extra processes')
.action((targets, options) => {
+ if (program.dev) {
+ process.env.NODE_ENV = 'development';
+ global.env = 'development';
+ }
require('./manage').build(targets.length ? targets : true, options);
})
.on('--help', () => {