'use strict'

{{#resource}}
    /** @typedef {import('@adonisjs/framework/src/Request')} Request */
    /** @typedef {import('@adonisjs/framework/src/Response')} Response */
    /** @typedef {import('@adonisjs/framework/src/View')} View */

    /**
    * Resourceful controller for interacting with {{resourceNamePlural}}
    */
{{/resource}}

const { Controller } = use('Conceptho/Controllers')

class {{name}} extends Controller {
{{#resource}}
    /**
    * Show a list of all {{resourceNamePlural}}.
    * GET {{resourceNamePlural}}
    *
    * @param {object} ctx
    * @param {Request} ctx.request
    * @param {Response} ctx.response
    * @param {View} ctx.view
    */
    async index ({ request, response, view }) {
    }

    /**
    * Render a form to be used for creating a new {{resourceName}}.
    * GET {{resourceNamePlural}}/create
    *
    * @param {object} ctx
    * @param {Request} ctx.request
    * @param {Response} ctx.response
    * @param {View} ctx.view
    */
    async create ({ request, response, view }) {
    }

    /**
    * Create/save a new {{resourceName}}.
    * POST {{resourceNamePlural}}
    *
    * @param {object} ctx
    * @param {Request} ctx.request
    * @param {Response} ctx.response
    */
    async store ({ request, response }) {
    }

    /**
    * Display a single {{resourceName}}.
    * GET {{resourceNamePlural}}/:id
    *
    * @param {object} ctx
    * @param {Request} ctx.request
    * @param {Response} ctx.response
    * @param {View} ctx.view
    */
    async show ({ params, request, response, view }) {
    }

    /**
    * Render a form to update an existing {{resourceName}}.
    * GET {{resourceNamePlural}}/:id/edit
    *
    * @param {object} ctx
    * @param {Request} ctx.request
    * @param {Response} ctx.response
    * @param {View} ctx.view
    */
    async edit ({ params, request, response, view }) {
    }

    /**
    * Update {{resourceName}} details.
    * PUT or PATCH {{resourceNamePlural}}/:id
    *
    * @param {object} ctx
    * @param {Request} ctx.request
    * @param {Response} ctx.response
    */
    async update ({ params, request, response }) {
    }

    /**
    * Delete a {{resourceName}} with id.
    * DELETE {{resourceNamePlural}}/:id
    *
    * @param {object} ctx
    * @param {Request} ctx.request
    * @param {Response} ctx.response
    */
    async destroy ({ params, request, response }) {
    }
{{/resource}}
}

module.exports = {{name}}
