v2: выделение валидации — validate() в crud, db/queries получает готовый cidr
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ipwhitelist",
|
||||
"version": "0.5.90",
|
||||
"version": "0.5.91",
|
||||
"description": "IP WhiteList microservice for cloud provider",
|
||||
"main": "server.js",
|
||||
"scripts": {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// ═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
module.exports = {
|
||||
version: '0.5.90',
|
||||
version: '0.5.91',
|
||||
iamUrl: process.env.V2_IAM_API_URL || 'https://auth-api.ngcloud.ru',
|
||||
appUrl: process.env.V2_APP_URL || 'https://whitelist.nodejsk8s.services.ngcloud.ru',
|
||||
};
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
// ═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
const q = require('../db/queries');
|
||||
const { validate } = require('../validators');
|
||||
|
||||
async function resolve(clientId) {
|
||||
return q.getOrCreateCompany(clientId, clientId);
|
||||
@@ -26,13 +27,15 @@ async function list(clientId, includeDeleted = false) {
|
||||
}
|
||||
|
||||
async function add(clientId, cidr, comment, email, impBy) {
|
||||
const { cidr: validated, wasNormalized } = validate(cidr);
|
||||
const co = await resolve(clientId);
|
||||
return q.createEntry(co.id, cidr, comment, email, impBy);
|
||||
return q.createEntry(co.id, validated, comment, email, impBy, wasNormalized);
|
||||
}
|
||||
|
||||
async function edit(entryId, clientId, cidr, comment, email, impBy) {
|
||||
const { cidr: validated, wasNormalized } = validate(cidr);
|
||||
const co = await resolve(clientId);
|
||||
return q.updateEntry(entryId, co.id, cidr, comment, email, impBy);
|
||||
return q.updateEntry(entryId, co.id, validated, comment, email, impBy, wasNormalized);
|
||||
}
|
||||
|
||||
async function remove(entryId, clientId, email, impBy) {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
// ═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
const { pool } = require('./index');
|
||||
const { validate, overlaps } = require('../validators');
|
||||
const { overlaps } = require('../validators');
|
||||
|
||||
// ── Компании ──────────────────────────────────────────────────────────────────
|
||||
|
||||
@@ -48,8 +48,7 @@ async function listEntries(companyId, includeDeleted = false) {
|
||||
/**
|
||||
* Создать запись (с валидацией, проверкой лимита и пересечений).
|
||||
*/
|
||||
async function createEntry(companyId, rawValue, comment, userEmail, impersonatedBy) {
|
||||
const { cidr, wasNormalized } = validate(rawValue);
|
||||
async function createEntry(companyId, cidr, comment, userEmail, impersonatedBy, wasNormalized = false) {
|
||||
const client = await pool.connect();
|
||||
try {
|
||||
await client.query('BEGIN');
|
||||
@@ -95,8 +94,7 @@ async function createEntry(companyId, rawValue, comment, userEmail, impersonated
|
||||
/**
|
||||
* Обновить запись.
|
||||
*/
|
||||
async function updateEntry(entryId, companyId, rawValue, comment, userEmail, impersonatedBy) {
|
||||
const { cidr, wasNormalized } = validate(rawValue);
|
||||
async function updateEntry(entryId, companyId, cidr, comment, userEmail, impersonatedBy, wasNormalized = false) {
|
||||
const client = await pool.connect();
|
||||
try {
|
||||
await client.query('BEGIN');
|
||||
|
||||
Reference in New Issue
Block a user