import express from 'express';

/**
 * RulesController. API for the game rules manager, граничен клас за комуникация с модула за игрови правила
 */
class RulesController{
    
    name = 'rulesApi'
    route = '/api/rule'

    /**
     * Initializes the RulesController plugin, инициализация
     * @param {App} app The application instance, апликация
     */
    init(app){
        const router = express.Router();
        const { rules } = app;

        /**
         * API: PUT /api/rule/ Create or update rule, създаване/обновяване на игрово правило
         * @function createOrUpdate
         * @memberof RulesController
         */
        router.put('/', async (req, res)=>{

        });

        /**
         * API: POST /api/rule/ List rules by given criteria, търсене в игровите правила
         * @function list
         * @returns {Rule[]}
         * @memberof RulesController
         */
        router.post('/', async (req, res)=>{
        })

        /**
         * API: GET /api/rule/:id Retrieve rule by ID, извличане на игрово правило
         * @function read
         * @param {string} id The id of the rule, идентификатор
         * @returns {Rule}
         * @memberof RulesController
         */
        router.get('/:id', async (req, res)=>{
        })

        /**
         * API: DELETE /api/rule/:id Delete rule by ID, изтриване на игрово правило
         * @function remove
         * @param {string} id The id of the rule, идентификатор
         * @memberof RulesController
         */
        router.delete('/:id', async (req, res)=>{
        })

        app.webServer.xapp.use(this.route, router);
    }
}

export { RulesController }