Skip to content

midgarjs/controller

Repository files navigation

Build Status Coverage

@midgar/controller

Plugin Midgar pour la gestion des controllers

Installation

$ npm i @midgar/controller

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

#midgar-cli
@midgar/controller 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/controller' 

// Tableau de service a injécter
// @see: https://github.com/midgarjs/service
const dependencies = [
  'midgar: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.

About

Controllers système for Midgar

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published