mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
feat: user exist route in write api
This commit is contained in:
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
|
|
||||||
define('forum/register', [
|
define('forum/register', [
|
||||||
'translator', 'zxcvbn', 'slugify', 'jquery-form',
|
'translator', 'zxcvbn', 'slugify', 'api', 'jquery-form',
|
||||||
], function (translator, zxcvbn, slugify) {
|
], function (translator, zxcvbn, slugify, api) {
|
||||||
var Register = {};
|
var Register = {};
|
||||||
var validationError = false;
|
var validationError = false;
|
||||||
var successIcon = '';
|
var successIcon = '';
|
||||||
@@ -159,21 +159,14 @@ define('forum/register', [
|
|||||||
} else if (!utils.isUserNameValid(username) || !slugify(username)) {
|
} else if (!utils.isUserNameValid(username) || !slugify(username)) {
|
||||||
showError(username_notify, '[[error:invalid-username]]');
|
showError(username_notify, '[[error:invalid-username]]');
|
||||||
} else {
|
} else {
|
||||||
socket.emit('user.exists', {
|
api.head(`/users/bySlug/${username}`, {})
|
||||||
username: username,
|
.then(() => {
|
||||||
}, function (err, exists) {
|
|
||||||
if (err) {
|
|
||||||
return app.alertError(err.message);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (exists) {
|
|
||||||
showError(username_notify, '[[error:username-taken]]');
|
showError(username_notify, '[[error:username-taken]]');
|
||||||
} else {
|
})
|
||||||
|
.catch(() => {
|
||||||
showSuccess(username_notify, successIcon);
|
showSuccess(username_notify, successIcon);
|
||||||
}
|
})
|
||||||
|
.finally(callback);
|
||||||
callback();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,14 +13,17 @@ define('api', () => {
|
|||||||
$.ajax(options)
|
$.ajax(options)
|
||||||
.done((res) => {
|
.done((res) => {
|
||||||
cb(null,
|
cb(null,
|
||||||
res.hasOwnProperty('status') && res.hasOwnProperty('response') ?
|
res && res.hasOwnProperty('status') && res.hasOwnProperty('response') ?
|
||||||
res.response : res
|
res.response : (res || {})
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
.fail((ev) => {
|
.fail((ev) => {
|
||||||
const errMessage = ev.responseJSON.status && ev.responseJSON.status.message ?
|
let errMessage;
|
||||||
ev.responseJSON.status.message :
|
if (ev.responseJSON) {
|
||||||
ev.responseJSON.error;
|
errMessage = ev.responseJSON.status && ev.responseJSON.status.message ?
|
||||||
|
ev.responseJSON.status.message :
|
||||||
|
ev.responseJSON.error;
|
||||||
|
}
|
||||||
|
|
||||||
cb(new Error(errMessage || ev.statusText));
|
cb(new Error(errMessage || ev.statusText));
|
||||||
});
|
});
|
||||||
@@ -39,10 +42,15 @@ define('api', () => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
api.get = (route, payload, onSuccess) => call({
|
api.get = (route, payload = {}, onSuccess) => call({
|
||||||
url: route + (Object.keys(payload).length ? ('?' + $.param(payload)) : ''),
|
url: route + (Object.keys(payload).length ? ('?' + $.param(payload)) : ''),
|
||||||
}, onSuccess);
|
}, onSuccess);
|
||||||
|
|
||||||
|
api.head = (route, payload, onSuccess) => call({
|
||||||
|
url: route + (Object.keys(payload).length ? ('?' + $.param(payload)) : ''),
|
||||||
|
method: 'head',
|
||||||
|
}, onSuccess);
|
||||||
|
|
||||||
api.post = (route, payload, onSuccess) => call({
|
api.post = (route, payload, onSuccess) => call({
|
||||||
url: route,
|
url: route,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
|
|||||||
@@ -341,6 +341,10 @@ helpers.getHomePageRoutes = async function (uid) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
helpers.formatApiResponse = async (statusCode, res, payload) => {
|
helpers.formatApiResponse = async (statusCode, res, payload) => {
|
||||||
|
if (res.req.method === 'HEAD') {
|
||||||
|
return res.sendStatus(statusCode);
|
||||||
|
}
|
||||||
|
|
||||||
if (String(statusCode).startsWith('2')) {
|
if (String(statusCode).startsWith('2')) {
|
||||||
res.status(statusCode).json({
|
res.status(statusCode).json({
|
||||||
status: {
|
status: {
|
||||||
|
|||||||
@@ -30,6 +30,8 @@ require('./user/ban')(SocketUser);
|
|||||||
require('./user/registration')(SocketUser);
|
require('./user/registration')(SocketUser);
|
||||||
|
|
||||||
SocketUser.exists = async function (socket, data) {
|
SocketUser.exists = async function (socket, data) {
|
||||||
|
sockets.warnDeprecated(socket, 'HEAD /api/v3/users/bySlug/:userslug');
|
||||||
|
|
||||||
if (!data || !data.username) {
|
if (!data || !data.username) {
|
||||||
throw new Error('[[error:invalid-data]]');
|
throw new Error('[[error:invalid-data]]');
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user