class UsersMiddleware {
async validateRequiredUserBodyFields(
req: Request,
res: Response,
next: NextFunction
) {
if (req.body && req.body.email) {
next();
} else {
res.status(400).send({
error: `Missing required fields email`,
});
}
}
async validateSameEmailDoesntExist(
req: Request,
res: Response,
next: NextFunction
) {
const user = await userService.getUserByEmail(req.body.email);
if (user) {
res.status(400).send({ error: `User email already exists` });
} else {
next();
}
}
async validateSameEmailBelongToSameUser(
req: Request,
res: Response,
next: NextFunction
) {
const user = await userService.getUserByEmail(req.body.email);
if (user && user.id === +req.params.userId) {
next();
} else {
res.status(400).send({ error: `Invalid email` });
}
}
validatePatchEmail = async (
req: Request,
res: Response,
next: NextFunction
) => {
if (req.body.email) {
log("Validating email", req.body.email);
this.validateSameEmailBelongToSameUser(req, res, next);
} else {
next();
}
};
async validateUserExists(req: Request, res: Response, next: NextFunction) {
const user = await userService.readById(req.params.userId);
if (user) {
next();
} else {
res.status(404).send({
error: `User ${req.params.userId} not found`,
});
}
}
async extractUserId(req: Request, res: Response, next: NextFunction) {
req.body.id = req.params.userId;
next();
}
}
export default new UsersMiddleware();
Movie.belongsToMany(Director, { through: 'Movie_Director' });
Director.belongsToMany(Movie, { through: 'Movie_Director' });
ALTER TABLE table_name DROP COLUMN createdAt; -- не правильно
ALTER TABLE table_name DROP COLUMN "createdAt"; -- правильно
wp_enqueue_script('main', 'path', [], null, true);
wp_localize_script('main', 'php_data', ['homeUrl' => home_url()]);
const url = php_data.homeUrl;
Подскажите, на какие характеристики нужно смотреть что бы шрифты были красивыми.
const obj = location; // какой-нибудь объект
console.log(getKeys(obj));
function getKeys(obj) {
return JSON.stringify(obj, null) // преобразуем в json
.slice(1, -1) // уберем внешние скобки
.replace(/"|{.+}/g, '') // уберем кавычки и вложенные объекты
.replace(/:[^,]*/g, '') // уберем значения, оставив только ключи
}
достаточно наркоманский способ? 'tax_query'
— это обычный массив, вы можете добавлять в него значения в зависимости от существования переменных $_POST$args = [
'post_type' => 'goods',
];
if ( !empty($_POST['color']) && !empty($_POST['category']) ) {
$args['tax_query'] = [
'relation' => 'AND',
[
'taxonomy' => 'color',
'field' => 'slug',
'terms' => $_POST['color']
],
[
'taxonomy' => 'category',
'field' => 'slug',
'terms' => $_POST['category']
]
];
} elseif( !empty($_POST['color']) || !empty($_POST['category']) ) {
if ( !empty($_POST['color']) ) {
$args['tax_query'] = [
[
'taxonomy' => 'color',
'field' => 'slug',
'terms' => $_POST['color']
]
];
} else {
$args['tax_query'] = [
[
'taxonomy' => 'category',
'field' => 'slug',
'terms' => $_POST['category']
]
];
}
}
$query = new WP_Query( $args );
'category'
это зарезервированная таксономия для записей. Если вы пользуетесь woocommerce, то там таксономии называются 'product_cat'
. Возможно поэтому ваш код и не работает