Merge branch 'dev' into 'staging'
feat: optional tariff price See merge request pena-services/hub_admin_backend_service!39
This commit is contained in:
commit
bd7c6e2e21
@ -4,17 +4,13 @@ import type { TariffMessage } from "@/types/messages/tariff-message.type";
|
|||||||
import type { ObjectWithRequiredFields } from "@/types/object-with-required-fields";
|
import type { ObjectWithRequiredFields } from "@/types/object-with-required-fields";
|
||||||
|
|
||||||
export const validateTariff = (tariff?: TariffMessage): [ObjectWithRequiredFields<TariffMessage>, Error | null] => {
|
export const validateTariff = (tariff?: TariffMessage): [ObjectWithRequiredFields<TariffMessage>, Error | null] => {
|
||||||
const [validatedTariff, errorEmpty] = validateEmptyFields(
|
const [validatedTariff, errorEmpty] = validateEmptyFields(tariff ?? {}, ["isCustom", "name", "privilegies"], false);
|
||||||
tariff ?? {},
|
|
||||||
["isCustom", "name", "price", "privilegies"],
|
|
||||||
false
|
|
||||||
);
|
|
||||||
|
|
||||||
if (errorEmpty) {
|
if (errorEmpty) {
|
||||||
return [validatedTariff, errorEmpty];
|
return [validatedTariff, errorEmpty];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isNaN(Number(validatedTariff.price))) {
|
if (validatedTariff.price && isNaN(Number(validatedTariff.price))) {
|
||||||
return [validatedTariff, new Error("invalid 'price' value")];
|
return [validatedTariff, new Error("invalid 'price' value")];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ const schema: SchemaDefinition<Tariff> = {
|
|||||||
},
|
},
|
||||||
price: {
|
price: {
|
||||||
type: Number,
|
type: Number,
|
||||||
required: true,
|
required: false,
|
||||||
},
|
},
|
||||||
isCustom: {
|
isCustom: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
|
@ -29,7 +29,7 @@ export const getTariffsQuerystring: SwaggerMessage = {
|
|||||||
export const tariffBody: SwaggerMessage = {
|
export const tariffBody: SwaggerMessage = {
|
||||||
type: "object",
|
type: "object",
|
||||||
description: "Тариф",
|
description: "Тариф",
|
||||||
required: ["name", "price", "isCustom", "privilegies"],
|
required: ["name", "isCustom", "privilegies"],
|
||||||
properties: {
|
properties: {
|
||||||
name: { type: "string" },
|
name: { type: "string" },
|
||||||
price: { type: "number" },
|
price: { type: "number" },
|
||||||
|
@ -3,7 +3,7 @@ import type { Eloquent } from "./eloquent.type";
|
|||||||
|
|
||||||
export type Tariff = Eloquent & {
|
export type Tariff = Eloquent & {
|
||||||
name: string;
|
name: string;
|
||||||
price: number;
|
price?: number;
|
||||||
isCustom: boolean;
|
isCustom: boolean;
|
||||||
privilegies: Array<Omit<Privilege, keyof Eloquent>>;
|
privilegies: Array<Omit<Privilege, keyof Eloquent>>;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user