forked from FoundKeyGang/FoundKey
いい感じに
This commit is contained in:
parent
3ca7a442ab
commit
e0c44abd4a
2 changed files with 58 additions and 21 deletions
|
@ -23,22 +23,22 @@ module.exports = async (params, user, _, isSecure) =>
|
||||||
new Promise(async (res, rej) =>
|
new Promise(async (res, rej) =>
|
||||||
{
|
{
|
||||||
// Get 'name' parameter
|
// Get 'name' parameter
|
||||||
const [name, nameErr] = it(params.name).expect.string().notNull().validate(isValidName).qed();
|
const [name, nameErr] = it(params.name).expect.string().validate(isValidName).qed();
|
||||||
if (nameErr) return rej('invalid name param');
|
if (nameErr) return rej('invalid name param');
|
||||||
if (name) user.name = name;
|
if (name) user.name = name;
|
||||||
|
|
||||||
// Get 'description' parameter
|
// Get 'description' parameter
|
||||||
const [description, descriptionErr] = it(params.description).expect.string().validate(isValidDescription).qed();
|
const [description, descriptionErr] = it(params.description).expect.nullable.string().validate(isValidDescription).qed();
|
||||||
if (descriptionErr) return rej('invalid description param');
|
if (descriptionErr) return rej('invalid description param');
|
||||||
if (description !== undefined) user.description = description;
|
if (description !== undefined) user.description = description;
|
||||||
|
|
||||||
// Get 'location' parameter
|
// Get 'location' parameter
|
||||||
const [location, locationErr] = it(params.location).expect.string().validate(isValidLocation).qed();
|
const [location, locationErr] = it(params.location).expect.nullable.string().validate(isValidLocation).qed();
|
||||||
if (locationErr) return rej('invalid location param');
|
if (locationErr) return rej('invalid location param');
|
||||||
if (location !== undefined) user.location = location;
|
if (location !== undefined) user.location = location;
|
||||||
|
|
||||||
// Get 'birthday' parameter
|
// Get 'birthday' parameter
|
||||||
const [birthday, birthdayErr] = it(params.birthday).expect.string().validate(isValidBirthday).qed();
|
const [birthday, birthdayErr] = it(params.birthday).expect.nullable.string().validate(isValidBirthday).qed();
|
||||||
if (birthdayErr) return rej('invalid birthday param');
|
if (birthdayErr) return rej('invalid birthday param');
|
||||||
if (birthday !== undefined) user.birthday = birthday;
|
if (birthday !== undefined) user.birthday = birthday;
|
||||||
|
|
||||||
|
|
|
@ -74,9 +74,14 @@ class QueryCore implements Query {
|
||||||
value: any;
|
value: any;
|
||||||
error: Error;
|
error: Error;
|
||||||
|
|
||||||
constructor(value: any) {
|
constructor(value: any, nullable: boolean = false) {
|
||||||
this.value = value;
|
if (value === null && !nullable) {
|
||||||
this.error = null;
|
this.value = undefined;
|
||||||
|
this.error = new Error('must-be-not-a-null');
|
||||||
|
} else {
|
||||||
|
this.value = value;
|
||||||
|
this.error = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
get isUndefined() {
|
get isUndefined() {
|
||||||
|
@ -166,8 +171,8 @@ class BooleanQuery extends QueryCore {
|
||||||
value: boolean;
|
value: boolean;
|
||||||
error: Error;
|
error: Error;
|
||||||
|
|
||||||
constructor(value) {
|
constructor(value: any, nullable: boolean = false) {
|
||||||
super(value);
|
super(value, nullable);
|
||||||
if (!this.isEmpty && typeof value != 'boolean') {
|
if (!this.isEmpty && typeof value != 'boolean') {
|
||||||
this.error = new Error('must-be-a-boolean');
|
this.error = new Error('must-be-a-boolean');
|
||||||
}
|
}
|
||||||
|
@ -201,8 +206,8 @@ class NumberQuery extends QueryCore {
|
||||||
value: number;
|
value: number;
|
||||||
error: Error;
|
error: Error;
|
||||||
|
|
||||||
constructor(value) {
|
constructor(value: any, nullable: boolean = false) {
|
||||||
super(value);
|
super(value, nullable);
|
||||||
if (!this.isEmpty && !Number.isFinite(value)) {
|
if (!this.isEmpty && !Number.isFinite(value)) {
|
||||||
this.error = new Error('must-be-a-number');
|
this.error = new Error('must-be-a-number');
|
||||||
}
|
}
|
||||||
|
@ -273,8 +278,8 @@ class StringQuery extends QueryCore {
|
||||||
value: string;
|
value: string;
|
||||||
error: Error;
|
error: Error;
|
||||||
|
|
||||||
constructor(value) {
|
constructor(value: any, nullable: boolean = false) {
|
||||||
super(value);
|
super(value, nullable);
|
||||||
if (!this.isEmpty && typeof value != 'string') {
|
if (!this.isEmpty && typeof value != 'string') {
|
||||||
this.error = new Error('must-be-a-string');
|
this.error = new Error('must-be-a-string');
|
||||||
}
|
}
|
||||||
|
@ -351,8 +356,8 @@ class ArrayQuery extends QueryCore {
|
||||||
value: any[];
|
value: any[];
|
||||||
error: Error;
|
error: Error;
|
||||||
|
|
||||||
constructor(value) {
|
constructor(value: any, nullable: boolean = false) {
|
||||||
super(value);
|
super(value, nullable);
|
||||||
if (!this.isEmpty && !Array.isArray(value)) {
|
if (!this.isEmpty && !Array.isArray(value)) {
|
||||||
this.error = new Error('must-be-an-array');
|
this.error = new Error('must-be-an-array');
|
||||||
}
|
}
|
||||||
|
@ -422,8 +427,8 @@ class IdQuery extends QueryCore {
|
||||||
value: mongo.ObjectID;
|
value: mongo.ObjectID;
|
||||||
error: Error;
|
error: Error;
|
||||||
|
|
||||||
constructor(value) {
|
constructor(value: any, nullable: boolean = false) {
|
||||||
super(value);
|
super(value, nullable);
|
||||||
if (!this.isEmpty && (typeof value != 'string' || !mongo.ObjectID.isValid(value))) {
|
if (!this.isEmpty && (typeof value != 'string' || !mongo.ObjectID.isValid(value))) {
|
||||||
this.error = new Error('must-be-an-id');
|
this.error = new Error('must-be-an-id');
|
||||||
}
|
}
|
||||||
|
@ -457,8 +462,8 @@ class ObjectQuery extends QueryCore {
|
||||||
value: any;
|
value: any;
|
||||||
error: Error;
|
error: Error;
|
||||||
|
|
||||||
constructor(value) {
|
constructor(value: any, nullable: boolean = false) {
|
||||||
super(value);
|
super(value, nullable);
|
||||||
if (!this.isEmpty && typeof value != 'object') {
|
if (!this.isEmpty && typeof value != 'object') {
|
||||||
this.error = new Error('must-be-an-object');
|
this.error = new Error('must-be-an-object');
|
||||||
}
|
}
|
||||||
|
@ -495,6 +500,14 @@ type It = {
|
||||||
string: () => StringQuery;
|
string: () => StringQuery;
|
||||||
number: () => NumberQuery;
|
number: () => NumberQuery;
|
||||||
boolean: () => BooleanQuery;
|
boolean: () => BooleanQuery;
|
||||||
|
nullable: {
|
||||||
|
string: () => StringQuery;
|
||||||
|
number: () => NumberQuery;
|
||||||
|
boolean: () => BooleanQuery;
|
||||||
|
id: () => IdQuery;
|
||||||
|
array: () => ArrayQuery;
|
||||||
|
object: () => ObjectQuery;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
an: {
|
an: {
|
||||||
id: () => IdQuery;
|
id: () => IdQuery;
|
||||||
|
@ -510,6 +523,14 @@ type It = {
|
||||||
id: () => IdQuery;
|
id: () => IdQuery;
|
||||||
array: () => ArrayQuery;
|
array: () => ArrayQuery;
|
||||||
object: () => ObjectQuery;
|
object: () => ObjectQuery;
|
||||||
|
nullable: {
|
||||||
|
string: () => StringQuery;
|
||||||
|
number: () => NumberQuery;
|
||||||
|
boolean: () => BooleanQuery;
|
||||||
|
id: () => IdQuery;
|
||||||
|
array: () => ArrayQuery;
|
||||||
|
object: () => ObjectQuery;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -519,7 +540,15 @@ const it = (value: any) => ({
|
||||||
a: {
|
a: {
|
||||||
string: () => new StringQuery(value),
|
string: () => new StringQuery(value),
|
||||||
number: () => new NumberQuery(value),
|
number: () => new NumberQuery(value),
|
||||||
boolean: () => new BooleanQuery(value)
|
boolean: () => new BooleanQuery(value),
|
||||||
|
nullable: {
|
||||||
|
string: () => new StringQuery(value, true),
|
||||||
|
number: () => new NumberQuery(value, true),
|
||||||
|
boolean: () => new BooleanQuery(value, true),
|
||||||
|
id: () => new IdQuery(value, true),
|
||||||
|
array: () => new ArrayQuery(value, true),
|
||||||
|
object: () => new ObjectQuery(value, true)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
an: {
|
an: {
|
||||||
id: () => new IdQuery(value),
|
id: () => new IdQuery(value),
|
||||||
|
@ -534,7 +563,15 @@ const it = (value: any) => ({
|
||||||
boolean: () => new BooleanQuery(value),
|
boolean: () => new BooleanQuery(value),
|
||||||
id: () => new IdQuery(value),
|
id: () => new IdQuery(value),
|
||||||
array: () => new ArrayQuery(value),
|
array: () => new ArrayQuery(value),
|
||||||
object: () => new ObjectQuery(value)
|
object: () => new ObjectQuery(value),
|
||||||
|
nullable: {
|
||||||
|
string: () => new StringQuery(value, true),
|
||||||
|
number: () => new NumberQuery(value, true),
|
||||||
|
boolean: () => new BooleanQuery(value, true),
|
||||||
|
id: () => new IdQuery(value, true),
|
||||||
|
array: () => new ArrayQuery(value, true),
|
||||||
|
object: () => new ObjectQuery(value, true)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue