/AutoBack

Primary LanguageTypeScript

Autoback

import { DB } from "../_helpers/models/modelsDb"
import { AutoBack } from "./autoBack"

const autoback = new AutoBack("postgres://postgres:password@localhost:5432/test", DB.POSTGRES)

autoback.activeAuth({
  config: {
    basicUser: {
      username: 'admin',
      password: 'adminTest24',
      email: 'darkelle24@gmail.com',
      role: 'Admin'
    }
}})

const test = autoback.defineTable('testTable', {
  id: { type: ABDataType.BIGINT, primaryKey: true, autoIncrement: true },
  status: { type: ABDataType.BOOLEAN, defaultValue: true, allowNull: true }
})

autoback.setUpTables()

test.basicRouting({auth: {role: ["Admin"]}})

autoback.start(8081)

Index

  1. Installation
  2. Ordre
  3. Mail
  4. Documentation des Classes
  5. Documentation des Interfaces

Installation

Il s'agit d'un module Node.js disponible via le registre npm.

S'il s'agit d'un tout nouveau projet, assurez-vous de créer d'abord un package.json avec la commande npm init.

L'installation se fait à l'aide de la commande npm install :

npm install autoback

Ordre

Création de la classe Autoback -> Définition des tables et/ou Activer l'authentification -> Appelle de setUpTables -> Définition des customs route et/ou Définition des basics route -> Allumage du serveur

Mail

Méthode addMailAccount

La methode addMailAccount permet d'ajouter un compte mail au serveur Autoback. Et retourne l index dans l'array.

autoback.addMailAccount("test", {
  host: 'smtp.gmail.com',
  port: 465,
  secure: true,
  auth: {
    user: "test@gmail.com",
    pass: "test",
  },
})
Définition de addMailAccount
addMailAccount(
    name: string,
    transport?: string | SMTPTransport | SMTPTransport.Options
): number
Paramétres de addMailAccount
name

name doit contenir un string.

Cette string permet de definir le nom du compte.

transport

port doit contenir soit un string, un SMTPTransport ou un SMTPTransport.Options.

Cela permet de configurer sa boite mail.

Pour un savoir plus allez voir nodemailer.

Méthode sendMail

La methode sendMail permet d'envoyer un mail.

autoback.addMailAccount("test", {
  from: "test@gmail.com",
  to: "receiver@gmail.com",
  subject: 'New Contact Form Submission',
  text: `test`,
})
Définition de sendMail
sendMail(
    accountName: string,
    mailOptions: Mail.Options
): Promise<any> | undefined
Paramétres de sendMail
accountName

accountName doit contenir un string.

Cette string permet de trouver le nom du compte.

mailOptions

port doit contenir Mail.Options.

Cela permet de configurer le mail.

Pour un savoir plus allez voir nodemailer.

Documentation des Classes

Index des Classes

  1. Classe Autoback
  2. Classe TableClass

Classe Autoback

Autoback est la classe principale du projet Autoback. Elle permet de centraliser toutes les tables créées et les routes liées a ces table.

Définition de Autoback

AutoBack(
  connnectionStr: string,
  db: DB = DB.POSTGRES,
  activeHealthRoute: boolean = true,
  fileInfo?: filePathInfo,
  serverPath: string = "api/",
  activeLog: boolean = true,
  socketActive: boolean = false
)

Paramétres de Autoback

connnectionStr

connectionStr doit contenir la string de connexion a la base de donnée.

db

db doit contenir la classe correspondant au nom de la base donnée utilisée. Par defaut cette valeur est DB.POSTGRES.

activeHealthRoute

activeHealthRoute doit contenir un boolean.

Il permet d'activer la route GET ${serverPath}/health. Cette route permet de savoir si le serveur est en ligne et depuis combien de temps. Par defaut cette valeur est true.

fileInfo

fileInfo doit contenir un objet filePathInfo ou undefined.

L'objet permet de definir le path du dossier sur la machine contenant les fichiers et le path virtuel du dossier. Par defaut cette valeur est

{
  folderPath: 'uploads',
  virtualPath: 'uploads'
}
serverPath

serverPath doit contenir une string.

Cette string permet de definir le debut de toutes les routes de l'autoback. Par defaut cette valeur est api/

activeLog

serverPath doit contenir un boolean.

Ce boolean permet de definir si oui ou non l'autoback devra etre logger. Les logs se trouveront dans le dossier logs. Par defaut cette valeur est true

socketActive

socketActive doit contenir un boolean.

Ce boolean permet de definir si oui ou non les socket sont activer. Par defaut cette valeur est false

Méthode start

La methode start permet de démarrer le serveur Autoback.

autoback.start(8081)
Définition de start
async start(
  port: number = 8080,
  httpServer?: http.Server
): Promise<void>
Paramétres de start
port

port doit contenir un nombre.

Ce nombre permet de definir le port de connexion du serveur AutoBack. Par defaut cette valeur est 8080

httpServer

port doit contenir soit undefined ou un http.Server

Cela permet de demarrer avec un serveur node.js plutot que seulement express.

Méthode defineTable

La methode defineTable permet de definir des tables dans Autoback.

autoback.defineTable('testTable', {
  id: { type: ABDataType.BIGINT, primaryKey: true, autoIncrement: true },
  status: { type: ABDataType.BOOLEAN, defaultValue: true, allowNull: true }
}, 'testRoute')
Définition de defineTable
defineTable(
  nameTable: string,
  table: Table,
  originRoutePath?: string,
  description?: string,
  socketInfo?: SocketInfo
): TableClass<any> | undefined
Paramétres de defineTable
nameTable

nameTable doit contenir une string.

Cette string permet de definir le nom de la table.

table

table doit contenir un objet Table.

Cette objet permet de definir le template de la table.

originRoutePath

originRoutePath doit contenir une string ou undefined.

Cette string permet de definir la suite de la route. Toutes les routes qui appartiennent a cette table auront avant leur path originRoutePath. Exemple ${serverPath}/${originRoutePath}/${path_des_routes_de_cette_table}. Par defaut cette valeur est le nom de la table.

description

description doit contenir un string.

Cela permet de definir une description pour le postman ou le mode de debug.

socketInfo

socketInfo doit contenir un SocketInfo

Ce SocketInfo permet de definir l'etat des socket sur une modification de la table.

Méthode setUpTables

La methode setUpTables permet de finaliser la création des tables dans Autoback. Aprés l'appelle de cette fonction vous pourrez definir des routes mais plus définir des tables

autoback.setUpTables()

Méthode activeAuth

La methode activeAuth permet de definir des tables dans Autoback.

autoback.activeAuth({
  config: {
    basicUser: {
      username: 'admin',
      password: 'adminTest24',
      email: 'zoulou@gmail.com',
      role: 'Admin'
    }
}})
Définition de activeAuth
activeAuth(
  auth?: authConfigAutoBack | boolean,
  userDefine: Table = userTableDefine,
  userTableClass: typeof UserTableClass = UserTableClass,
  mergeUserDefine: boolean = true
): void
Paramétres de activeAuth
auth

auth doit contenir un objet authConfigAutoBack, un boolean ou juste undefined.

Elle permet de utiliser la table user predefinie et grace a authConfigAutoBack on peut definir le premier utilisateur de la table user. Par defaut cette valeur est false.

userDefine

userDefine doit contenir un objet Table ou juste undefined.

Elle permet de pouvoir définir les colonnes de la table User. Par defaut cette valeur est

{
  id: { type: ABDataType.BIGINT, primaryKey: true, autoIncrement: true },
  username: { type: ABDataType.STRING, unique: true },
  password: { type: ABDataType.STRING, validate: { isStrongPassword: { minLength: 6, maxLength: 20, minLowercase: 1, minUppercase: 0, minNumbers: 1, minSymbols: 0 }}, transformSet: (value: string, table: UserTableClass<any>) => { return table.getHash().update(value).digest('hex') } },
  email: { type: ABDataType.STRING, validate: {isEmail: true} },
  phone: { type: ABDataType.STRING, allowNull: true },
  role: {type: ABDataType.STRING, validate: { equals: {comparaison: ["Admin", "SuperAdmin"]}}}
}

Chaque valeur manquante sera remplacer par celle par défaut grace à loadash merge.

userTableClass

userDefine doit contenir une classe non construite de type UserTableClass ou juste undefined.

Permet de définir le comportement de la table User. Par defaut cette valeur est UserTableClass.

mergeUserDefine

userDefine doit contenir un boolean ou juste undefined.

Permet de définir si le userDefine va merge avec les valeurs par defauts. Par defaut cette valeur est true.

Classe TableClass

TableCLass est la classe des tables créer grace à la méthode defineTable de la classe Autoback du projet Autoback. Elle permet de créer et centraliser toutes les routes lier a cette table.

Méthode basicRouting

La methode basicRouting permet de definir les routes de base de la table. Les routes GET POST PUT DELETE

test.basicRouting({auth: {role: ["Admin"]}})
Définition de basicRouting
basicRouting(
  getRoute: basicRouteParams = {},
  postRoute: basicRouteParams = {},
  putRoute: basicRouteParams = {},
  deleteRoute: basicRouteParams = {}
): void
Paramétres de basicRouting

getRoute, postRoute, putRoute, deleteRoute doivent contenir un objet basicRouteParams ou undefined.

L'objet basicRouteParams permet de definir si la route est activer et/ou definir les role d'utilisateur qui on le droit d'accéder a cette route. Par defaut chaque paramétres a pour valeur

{
  active: true,
  auth: undefined
}

Méthode addRoute

La methode addRoute permet de créer une route.

test.addRoute({
    type: TypeRoute.POST,
    path: '/postTest',
    columsAccept: {
      inverse: true,
      list: ["id"]
    },
    dataAs: {
      comment: {
        where: InfoPlace.QUERYPARAMS,
        force: false
      }
    },
    auth: {
      role: ['User', 'Admin']
    }
  })
Définition de addRoute
addRoute(
  route: Route
): RouteClass | undefined
Paramétres de addRoute
route

route doit contenir un objet Route.

Cette objet permet de definir le comportement de la route créer.

Documentation des Interfaces

Index des Interfaces

  1. Interface Route
  2. Interface Table
  3. Interface dataTableInfo
  4. Interface dataLinkTable
  5. Interface basicRouteParams
  6. Interface access
  7. Interface authConfigAutoBack
  8. Interface userTableConfig
  9. Interface acceptData
  10. Interface ListFilter
  11. Interface FilterInfo
  12. Interface ListValueInfo
  13. Interface ValueInfo
  14. SocketInfo

Interface Route

Cette interface permet de définir une route.

let route = {
  type: TypeRoute.POST,
  path: '/postTest',
  columsAccept: {
    inverse: true,
    list: ["id"]
  },
  dataAs: {
    comment: {
      where: InfoPlace.QUERYPARAMS,
      force: false
    }
  },
  auth: {
    role: ['User', 'Admin']
  }
}

il a différent interface route en fonction du type de route que vous-soulez créer.

Il y a 4 types possibles de route: GET, POST, PUT, DELETE. Mais ils ont tous en commun l'interface RouteBasic.

Définition de RouteBasic

interface RouteBasic {
   path: string,
   auth?: access,
   doSomething?(req: any, res: any, route: RouteClass): any
}

Paramétres de RouteBasic

path

path doit contenir une string.

Cette string permet de definir le path de la route.

Il peut etre formatter comme sur Express. Le debut du path va etre le path du serveur + le path de la table lier.

Exemple ${serverPath}/${originRoutePath}/${path_des_routes_de_cette_table}

auth

auth doit contenir un access ou undefined.

auth ne marchera que si la table user de l'Autoback est crée et activée.

Si l'auth est égale a undefined, l'utilisateur n'as pas besoin d'étre authentifier pour avoir acces a la route.

doSomething

doSomething doit contenir une fonction ou undefined.

Si doSomething n'est pas égale a undefined alors toutes les autres function du code a l'exception de JsonToDB, DBToJson, checkError, transformSet seront passées.

Définition de Route de type GET

type RouteGet = {
   readonly type: TypeRoute.GET,
   limit?: FilterInfo,
   offset?: FilterInfo,
   returnColumns?: acceptData,
   filters?: ListFilter,
   fileReturnWithHost?: boolean,
   solo?: boolean,
   beforeGet?(request: any, respond: any, routeClass: RouteGetClass<any>, filters: any): void,
   beforeSend?(request: any, respond: any, routeClass: RouteGetClass<any>, datas: any[]): void,
   beforeSendAfterRecursive?(request: any, respond: any, routeClass: RouteGetClass<any>, datas: any[]): void
} & RouteBasic

Paramétres de Route de type GET

type

type doit contenir un TypeRoute.

Permet de définir le type de route.

limit

limit doit contenir un FilterInfo ou undefined.

Permet de définir le moyen de récuperer la valeur pour avoir définir le nombre d'objet maximum a retourner. Si limit est undefined alors l'utilisateur n'as pas de moyen de définir le nombre d'objet maximum a retourner.

offset

offset doit contenir un FilterInfo ou undefined.

Permet de définir le moyen de récuperer la valeur pour avoir le début de sélection des objets a retourner. Si offset est undefined alors l'utilisateur n'as pas de moyen de définir le début de sélection des objets a retourner.

returnColumns

returnColumns doit contenir un acceptData ou undefined.

Permet de définir les colonnes de la table a retourné pour chaque data. Si returnColumns est undefined alors toutes les colonnes de la table sont retournés.

filters

filters doit contenir un ListFilter ou undefined.

Permet de définir les filtres activés. Si filters est undefined alors juste les filtres de base des types sont activés.

fileReturnWithHost

fileReturnWithHost doit contenir un boolean ou undefined.

Si true ou undefined alors le path des fichier sera renvoyer avec l'hostname du serveur.

solo

solo doit contenir un boolean ou undefined.

Si true alors le get renvoie qu une seul valeur.

beforeGet

beforeGet doit contenir une fonction ou undefined.

Permet de pouvoir executée une fonction juste avant de get les données.

beforeSend

beforeSend doit contenir une fonction ou undefined.

Permet de pouvoir executée une fonction juste avant d'envoyer les données.

beforeSendAfterRecursive

beforeSendAfterRecursive doit contenir une fonction ou undefined.

Permet de pouvoir executée une fonction juste avant d'envoyer les données mais aprés la recupération de table ne récursive.

Définition de Route de type POST

type RoutePost = {
   readonly type: TypeRoute.POST,
   columsAccept?: acceptData,
   returnColumns?: acceptData,
   dataAs?: ListValueInfo,
   fileReturnWithHost?: boolean,
   beforeSetValue?(request: any, respond: any, routeClass: RoutePostClass<any>): void,
   beforeSend?(request: any, respond: any, routeClass: RoutePostClass<any>, data: any): void,
   beforeSendAfterRecursive?(request: any, respond: any, routeClass: RoutePostClass<any>, data: any): void,
   socketNotif?: SocketNotifInfo
} & RouteBasic

Paramétres de Route de type POST

type

type doit contenir un TypeRoute.

Permet de définir le type de route.

columsAccept

columsAccept doit contenir un acceptData ou undefined.

Permet de définir les donnée pris en compte par le serveur. Si columsAccept est undefined alors toutes les donnée seront pris en compte.

returnColumns

returnColumns doit contenir un acceptData ou undefined.

Permet de définir les colonnes de la table a retourné pour chaque data. Si returnColumns est undefined alors toutes les colonnes de la table sont retournés.

dataAs

dataAs doit contenir un ListValueInfo ou undefined.

Permet de chercher des informations ailleurs que dans le body et les mettre dans le body.

fileReturnWithHost

fileReturnWithHost doit contenir un boolean ou undefined.

Si true ou undefined alors le path des fichier sera renvoyer avec l'hostname du serveur.

beforeSetValue

beforeSetValue doit contenir une fonction ou undefined.

Permet de pouvoir executée une fonction juste avant d'enregistrer les données.

beforeSend

beforeSend doit contenir une fonction ou undefined.

Permet de pouvoir executée une fonction juste avant d'envoyer les données.

beforeSendAfterRecursive

beforeSendAfterRecursive doit contenir une fonction ou undefined.

Permet de pouvoir executée une fonction juste avant d'envoyer les données mais aprés la recupération de table ne récursive.

socketNotif

socketNotif doit contenir un SocketNotifInfo ou undefined.

Permet de configurer l envoie de socket au user connecter au socket correspondant a la table.

Définition de Route de type PUT

type RoutePut = {
   readonly type: TypeRoute.PUT,
   columsAccept?: acceptData,
   returnColumns?: acceptData,
   dataAs?: ListValueInfo,
   filters?: ListFilter,
   fileReturnWithHost?: boolean,
   beforeSetValue?(request: any, respond: any, routeClass: RoutePutClass<any>, row: Model<any>): void,
   beforeSend?(request: any, respond: any, routeClass: RoutePutClass<any>, data: any): void,
   beforeSendAfterRecursive?(request: any, respond: any, routeClass: RoutePutClass<any>, data: any): void,
   socketNotif?: SocketNotifInfo
} & RouteBasic

Paramétres de Route de type PUT

type

type doit contenir un TypeRoute.

Permet de définir le type de route.

columsAccept

columsAccept doit contenir un acceptData ou undefined.

Permet de définir les donnée pris en compte par le serveur. Si columsAccept est undefined alors toutes les donnée seront pris en compte.

returnColumns

returnColumns doit contenir un acceptData ou undefined.

Permet de définir les colonnes de la table a retourné pour chaque data. Si returnColumns est undefined alors toutes les colonnes de la table sont retournés.

dataAs

dataAs doit contenir un ListValueInfo ou undefined.

Permet de chercher des informations ailleurs que dans le body et les mettre dans le body.

filters

filters doit contenir un ListFilter ou undefined.

Permet de définir les filtres activés. Si filters est undefined alors juste les filtres de base des types sont activés.

fileReturnWithHost

fileReturnWithHost doit contenir un boolean ou undefined.

Si true ou undefined alors le path des fichier sera renvoyer avec l'hostname du serveur.

beforeSetValue

beforeSetValue doit contenir une fonction ou undefined.

Permet de pouvoir executée une fonction juste avant d'enregistrer les données.

beforeSend

beforeSend doit contenir une fonction ou undefined.

Permet de pouvoir executée une fonction juste avant d'envoyer les données.

beforeSendAfterRecursive

beforeSendAfterRecursive doit contenir une fonction ou undefined.

Permet de pouvoir executée une fonction juste avant d'envoyer les données mais aprés la recupération de table ne récursive.

socketNotif

socketNotif doit contenir un SocketNotifInfo ou undefined.

Permet de configurer l envoie de socket au user connecter au socket correspondant a la table.

Définition de Route de type DELETE

type RouteDelete = {
   readonly type: TypeRoute.DELETE,
   filters?: ListFilter,
   beforeDelete?(request: any, respond: any, routeClass: RouteDeleteClass<any>, data: any): void,
   beforeSend?(request: any, respond: any, routeClass: RouteDeleteClass<any>, data: any): void,
   socketNotif?: SocketNotifInfo
} & RouteBasic

Paramétres de Route de type DELETE

type

type doit contenir un TypeRoute.

Permet de définir le type de route.

filters

filters doit contenir un ListFilter ou undefined.

Permet de définir les filtres activés. Si filters est undefined alors juste les filtres de base des types sont activés.

beforeDelete

beforeSetValue doit contenir une fonction ou undefined.

Permet de pouvoir executée une fonction juste avant de supprimé les données.

beforeSend

beforeSend doit contenir une fonction ou undefined.

Permet de pouvoir executée une fonction juste avant d'envoyer les données.

socketNotif

socketNotif doit contenir un SocketNotifInfo ou undefined.

Permet de configurer l envoie de socket au user connecter au socket correspondant a la table.

Interface Table

Définition de Table

interface Table {
  [key: string]: dataTableInfo | dataLinkTable
}

C'est un dictionnaire js qui va contenir des string en key et en value des dataTableInfo ou dataLinkTable

Interface dataTableInfo

Définition de dataTableInfo

interface dataTableInfo {
  type: ABDataType,
  primaryKey?: boolean,
  autoIncrement?: boolean,
  allowNull?: boolean,
  initValue?: any,
  defaultValue?: any,
  neverShow?: boolean,
  unique?: boolean,
  keepOldValue?: boolean,
  transformSet?(value: any, table: TableClass<any>): any
  transformGet?(value: any, table: TableClass<any>): any,
  validate?: ModelValidator
}

Paramétres de dataTableInfo

type

type doit contenir un ABDataType.

Permet de pouvoir définir le type de donnée enregistrer dans cette colonne.

primaryKey

primaryKey doit contenir un boolean ou undefined.

Permet de définir si cette colonne est la primary key de la table. Si undefined alors primaryKey est égale a false.

autoIncrement

autoIncrement doit contenir un boolean ou undefined.

Permet de définir si cette colonne doit s'auto incrementé pour chaque valeur ajouter. Fonctionne que si le type de la collonne est de type nombre. Si undefined alors autoIncrement est égale a false.

allowNull

allowNull doit contenir un boolean ou undefined.

Permet de définir si l'utilisateur peut ne rien envoyer ou envoyer null pour cette colonne. Si undefined alors allowNull est égale a false.

initValue

initValue doit contenir une valeur ou undefined.

Permet de définir si l'utilisateur créer une nouvelle entrer de mettre des valeur initial si l'utilisateur n'as pas défini encore une valeur. Par defaut initValue est égale à undefined.

defaultValue

defaultValue doit contenir une valeur ou undefined.

Permet de définir si l'utilisateur envoie null ou undefined pour cette colonne de mettre une valeur. Par defaut defaultValue est égale à undefined.

neverShow

neverShow doit contenir un boolean ou undefined.

Permet de définir si la valeur ne sera jamais dans les reponses en recursives et normal. Par defaut neverShow est égale à false.

unique

unique doit contenir une boolean ou undefined.

Permet de définir si l'utilisateur peut envoyer plusieurs fois la meme valeur. Par defaut unique est égale à false.

keepOldValue

keepOldValue doit contenir une boolean ou undefined.

Permet de définir si l'utilisateur envoye null a pour cette colonne de garder l'ancienne valeur. Par defaut keepOldValue est égale à true.

transformSet

transformSet doit contenir une fonction ou undefined.

Permet de définir d'executer une fonction avant l'execution de la fonction dataTypeInfo.JsonToDB mais aprés validate. Par defaut transformSet est égale à undefined.

transformGet

transformGet doit contenir une fonction ou undefined.

Permet de définir d'executer une fonction aprés l'execution de la fonction dataTypeInfo.DBToJson. Par defaut transformGet est égale à undefined.

validate

validate doit contenir une ModelValidator ou undefined.

Permet de définir de défénir des contrainte sur les données entrente dans cette colonne en plus de celle imposer par les ABDataType. Par defaut validate est égale à .

Interface dataLinkTable

Définition de dataLinkTable

type dataLinkTable = {
  tableToLink: string,
  columnsLink: string,
  type: ABDataType.TABLE_LINK | ABDataType.MULTIPLE_LINK_TABLE ,
  onDelete?: DeleteAction,
  rename?: string,
  multipleResult?: boolean,
  transformGetLinkedData?(value: any): void
} & dataTableInfo

dataLinkTable herite de dataTableInfo

Paramétres de dataLinkTable

tableToLink

tableToLink doit contenir un string. tableToLink doit etre le nom d'une table.

Permet de définir la table qui sera lier a cette colonne.

columnsLink

columnsLink doit contenir un string.

Permet de définir la colonne qui sera utiliser pour trouver les comparée les donnée dans la table lier.

Par exemple columnsLink = 'id' permettera de chercher grace a l'id les donnée que l'utilisateur a stocker dans la table lier.

type

columnsLink doit contenir un ABDataType.TABLE_LINK ou ABDataType.MULTIPLE_LINK_TABLE.

Permet de définir si il y a plusieur lien a une meme table grace a ABDataType.MULTIPLE_LINK_TABLE ou si type est egale a ABDataType.TABLE_LINK alors il y a qu un seul lien dans l'autre table.

onDelete

onDelete doit contenir soit DELETE, SET_DEFAULT, SET_NULL.

DELETE si la / les lignes liées sont détruite alors le lien sera supprimer seront supprimer. SET_DEFAULT si la / les lignes liées sont détruite alors le lien sera remis a la valeur par defaut. SET_NULL si la / les lignes liées sont détruite alors le lien sera egale a null.

Par default onDelete est egale a DELETE.

rename

rename doit contenir une string ou undefined.

Permet de renommer la colonne quandd la ligne est renvoyer a l'utilisateur. Par defaut rename est égale à undefined.

multipleResult

multipleResult doit contenir une boolean ou undefined.

Permet de de definir si quand la ligne est renvoyer a l'utilisateur d'afficher plusieur resultat sous la forme d'une array. Par defaut rename est égale à true.

transformGetLinkedData

transformGetLinkedData doit contenir une fonction ou undefined.

Permet de définir d'executer une fonction aprés la récupération de donnée dans une recursive. Par defaut transformGetLinkedData est égale à undefined.

Interface basicRouteParams

Définition de basicRouteParams

interface basicRouteParams {
   active?: boolean,
   auth?: access
}

Paramétres de basicRouteParams

active

active doit contenir un boolean ou undefined.

Permet de pouvoir activer ou non une basic route. Par défaut la value est true.

auth

active doit contenir un access ou undefined.

Permet de pouvoir définir le processus d'authenfication sur cette basic route.

Interface access

Définition de access

export interface access {
  role?: string[],
  inverse?: boolean
}

Paramétres de access

role

role doit contenir un string[] ou undefined.

Permet de défénir les role qui auront accés a la route. Si undefined alors tous les roles sont acceptée. Par défaut la valeur est undefined.

inverse

inverse doit contenir un boolean ou undefined.

Permet d'inverser la séléction des roles. Par exemple, si role est undefined alors tous les roles sont refusée. Par défaut la value est false.

Interface authConfigAutoBack

Définition de authConfigAutoBack

interface authConfigAutoBack {
  config?: userTableConfig,
  getRoute?: basicRouteParams,
  postRoute?: basicRouteParams,
  putRoute?: basicRouteParams,
  deleteRoute?: basicRouteParams
}

Paramétres de authConfigAutoBack

config

config doit contenir un userTableConfig ou undefined.

Permet de définir la configuration des compte. Voir plus dans le chapitre lié a userTableConfig. Par défaut la valeur de config est

  tokenSecret: "wVmNfh6YPJMHtwtbj0Wa43wSh3cvJpoKqoQzZK8QbwjTGEVBNYO8xllNQC2G0U7lfKcVMK5lsn1Tshwl",
  passwordSecret: "pBvhLoQrwTKyk9amfwSabc0zwh5EuV7DDTYpbGG4K52vV9WGftSDhmlz90hMvASJlHk1azg24Uvdturqomx819kz10NS9S",
  expiresIn: "7 days",
  roles: ["SuperAdmin", "Admin", "User"],
  basicUser: auth.basicUser
getRoute

getRoute doivent contenir un objet basicRouteParams ou undefined.

L'objet basicRouteParams permet de definir si la route est activer et/ou definir les role d'utilisateur qui on le droit d'accéder a cette route.

postRoute

postRoute doivent contenir un objet basicRouteParams ou undefined.

L'objet basicRouteParams permet de definir si la route est activer et/ou definir les role d'utilisateur qui on le droit d'accéder a cette route.

putRoute

putRoute doivent contenir un objet basicRouteParams ou undefined.

L'objet basicRouteParams permet de definir si la route est activer et/ou definir les role d'utilisateur qui on le droit d'accéder a cette route.

deleteRoute

deleteRoute doivent contenir un objet basicRouteParams ou undefined.

L'objet basicRouteParams permet de definir si la route est activer et/ou definir les role d'utilisateur qui on le droit d'accéder a cette route.

Interface userTableConfig

Définition de userTableConfig

interface userTableConfig {
  readonly tokenSecret?: string,
  readonly passwordSecret?: string,
  expiresIn?: string,
  roles?: string[],
  basicUser?: {
    username: string,
    password: string,
    email: string,
    phone?: number,
    role: string
  }
}

Paramétres de userTableConfig

tokenSecret

tokenSecret doit contenir un string ou undefined.

Permet de définir le secret dans laquel les token seront crypter.

passwordSecret

passwordSecret doit contenir un string ou undefined.

Permet de définir le secret dans laquel les password seront crypter.

expiresIn

passwordSecret doit contenir un string ou undefined.

Permet de définir la durée de vie du token.

roles

roles doit contenir un string[] ou undefined.

Permet de définir les role possible.

basicUser

basicUser doit contenir un objet ou undefined.

Permet de créer un utilisateur a la création de la data base.

Interface acceptData

Définition de acceptData

interface acceptData {
    list?: string[] | null,
    inverse?: boolean
}

Paramétres de acceptData

list

list doit contenir un string[] ou undefined ou null.

Permet de défénir la liste des donnée qui sont accepter. Si undefined alors tous les donnée sont acceptée a l'exception de la primaryKey. Si null alors tous les donnée sont acceptée a l'exception de la primaryKey.

inverse

inverse doit contenir un boolean ou undefined.

Permet d'inverser la liste. Par défaut la value est false.

Interface ListFilter

Définition de ListFilter

interface ListFilter {
  [columnsName: string]: FilterOperators
}

C'est un dictionnaire js qui va contenir des string en key qui corresponde au nom des colonne de la Table et en value des FilterOperators

Interface FilterInfo

Définition de FilterInfo

interface FilterInfo {
  name?: string
  where?: InfoPlace,
  transformValue?(value: any): any
}

Paramétres de FilterInfo

name

name doit contenir un string ou undefined.

Permet de définir le nom de la donnée qui sera sélectionner. Par défaut la value est {nom_de_la_colonne}_{name_du_filtre}.

where

where doit contenir un InfoPlace ou undefined.

Permet de définir l'endroit ou est stocker la donnée. Par défaut la value est InfoPlace.QUERYPARAMS.

transformValue

transformValue doit contenir un fonction ou undefined.

Permet d'executer une fonction quand la donnée sera recupérer. Par défaut la value est transform de dataTypeInfo si transformValue est égale undefined et dataTypeInfo.transform est différent de undefined.

Interface ListValueInfo

Définition de ListValueInfo

interface ListValueInfo {
   [columnsName: string]: ValueInfo
}

C'est un dictionnaire js qui va contenir des string en key qui corresponde au nom des colonne de la Table et en value des ValueInfo

Interface SocketInfo

Définition de SocketInfo

interface SocketInfo {
  path?: string,
  auth?: access,
  notif?: SocketNotifInfo,
  toDoOnSocketConnection?: (socket: Socket) => void
}

Paramétres de SocketInfo

path

path doit contenir un string ou undefined.

Permet de définir le path de la socket sur la table. Si undefined alors prend le path de la table comme path de socket.

auth

active doit contenir un access ou undefined.

Permet de pouvoir définir le processus d'authenfication sur cette socket.

notif

notif doit contenir un SocketNotifInfo.

Permet de definir comment se comporterra les notification.

toDoOnSocketConnection

notif doit contenir une fonction ou undefined.

Permet d'executer une fonction quand un nouvelle utilisateur se connecte a la socket.

Interface SocketNotifInfo

Définition de SocketNotifInfo

interface SocketNotifInfo {
  activate?: boolean,
  selectUserSendNotifs?: (userToSendNotif: (RemoteSocket<any>)[], req: any, dataChange: any, type: 'POST' | 'PUT' | 'DELETE' ) => (RemoteSocket<any>)[],
  toSendForNotif?: (packageToSend: {eventName: string, toSend: {data: any, type: 'POST' | 'PUT' | 'DELETE' }}, req: any) => {eventName: string, toSend: any}
}

Paramétres de SocketInfo

activate

activate doit contenir un boolean ou undefined.

Permet de définir si les notifications sont activer. Si undefined alors activate est agale a true.

selectUserSendNotifs

selectUserSendNotifs doit contenir une fonction ou undefined.

Permet de selectionner la liste des user qui vont recevoir la notif.

toSendForNotif

toSendForNotif doit contenir une fonction ou undefined.

Permet de selectionner quoi envoyer au user qui vont recevoir la notif.