mirror of
https://github.com/sasjs/server.git
synced 2025-12-10 19:34:34 +00:00
91 lines
2.5 KiB
TypeScript
91 lines
2.5 KiB
TypeScript
import Joi from 'joi'
|
|
|
|
const usernameSchema = Joi.string().alphanum().min(6).max(20)
|
|
const passwordSchema = Joi.string().min(6).max(1024)
|
|
|
|
export const authorizeValidation = (data: any): Joi.ValidationResult =>
|
|
Joi.object({
|
|
username: usernameSchema.required(),
|
|
password: passwordSchema.required(),
|
|
clientId: Joi.string().required()
|
|
}).validate(data)
|
|
|
|
export const tokenValidation = (data: any): Joi.ValidationResult =>
|
|
Joi.object({
|
|
clientId: Joi.string().required(),
|
|
code: Joi.string().required()
|
|
}).validate(data)
|
|
|
|
export const registerGroupValidation = (data: any): Joi.ValidationResult =>
|
|
Joi.object({
|
|
name: Joi.string().min(6).required(),
|
|
description: Joi.string(),
|
|
isActive: Joi.boolean()
|
|
}).validate(data)
|
|
|
|
export const registerUserValidation = (data: any): Joi.ValidationResult =>
|
|
Joi.object({
|
|
displayName: Joi.string().min(6).required(),
|
|
username: usernameSchema.required(),
|
|
password: passwordSchema.required(),
|
|
isAdmin: Joi.boolean(),
|
|
isActive: Joi.boolean()
|
|
}).validate(data)
|
|
|
|
export const deleteUserValidation = (
|
|
data: any,
|
|
isAdmin: boolean = false
|
|
): Joi.ValidationResult =>
|
|
Joi.object(
|
|
isAdmin
|
|
? {}
|
|
: {
|
|
password: passwordSchema.required()
|
|
}
|
|
).validate(data)
|
|
|
|
export const updateUserValidation = (
|
|
data: any,
|
|
isAdmin: boolean = false
|
|
): Joi.ValidationResult => {
|
|
const validationChecks: any = {
|
|
displayName: Joi.string().min(6),
|
|
username: usernameSchema,
|
|
password: passwordSchema
|
|
}
|
|
if (isAdmin) {
|
|
validationChecks.isAdmin = Joi.boolean()
|
|
validationChecks.isActive = Joi.boolean()
|
|
}
|
|
return Joi.object(validationChecks).validate(data)
|
|
}
|
|
|
|
export const registerClientValidation = (data: any): Joi.ValidationResult =>
|
|
Joi.object({
|
|
clientId: Joi.string().required(),
|
|
clientSecret: Joi.string().required()
|
|
}).validate(data)
|
|
|
|
export const getFileDriveValidation = (data: any): Joi.ValidationResult =>
|
|
Joi.object({
|
|
filePath: Joi.string().required()
|
|
}).validate(data)
|
|
|
|
export const updateFileDriveValidation = (data: any): Joi.ValidationResult =>
|
|
Joi.object({
|
|
filePath: Joi.string().required(),
|
|
fileContent: Joi.string().required()
|
|
}).validate(data)
|
|
|
|
export const runSASValidation = (data: any): Joi.ValidationResult =>
|
|
Joi.object({
|
|
code: Joi.string().required()
|
|
}).validate(data)
|
|
|
|
export const executeProgramRawValidation = (data: any): Joi.ValidationResult =>
|
|
Joi.object({
|
|
_program: Joi.string().required()
|
|
})
|
|
.pattern(/^/, Joi.alternatives(Joi.string(), Joi.number()))
|
|
.validate(data)
|