Skip to content

midgarjs/route

Repository files navigation

Build Status Coverage

@midgar/route

Plugin Midgar pour la gestion des controllers

Installation

$ npm i @midgar/route

Si tout s'est bien passé, un message de confirmation s'affiche:

#midgar-cli
@midgar/route added to plugins.json !

Fonctionnement

Ce plugin ajoute un type de module midgar-controller dans le dossier ./controllers/

Il suffit d'ajouter un controller dans le dossier ./controllers de votre plugin pour qu'il soit automatiquement importé au lancement de l'application et injecté dans express.

Exemple de controller

import { Controller } from '@midgar/route'

// Tableau de service a injécter
// @see: https://github.com/midgarjs/service
const dependencies = ['mid:user']

class UserController extends Controller {
  // Les dépendances sont injécté dans le contructeur
  constructor(mid, userService) {
    super(mid)
    this.prefix = 'user'
    this.userService = userService
  }

  /**
   * Cette méthod est appelé automatiquement
   * lors de l'instanciation du controller.
   */
  init() {
    this.addRoutes([
      {
        path: 'login',
        action: (...args) => this.login(...args)
      },
      {
        method: 'post',
        path: 'login',
        action: (...args) => this.loginPost(...args)
      },
      {
        path: 'register',
        action: (...args) => this.register(...args)
      },
      {
        path: '/',
        action: (...args) => this.users(...args)
      }
    ])
  }

  // GET /user/login route
  async login(req, res) {
    if (await this.userService.login(req.getParam('login'), req.getParam('password', false))) {
      res.send({ success: true })
    } else {
      res.send({ success: false })
    }
  }

  // POST /user/login route
  loginPost(req, res) {}

  // GET /user/register route
  register(req, res) {}

  // GET /user route
  user(req, res) {}
}

export default {
  dependencies,
  controller: UserController
}

Les methodes terminant par Route, GetRoute, PostRoute, AllRoute sont automatiquement transformer en routes. documentation Api.

About

Router systeme

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published