You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
3.4 KiB
140 lines
3.4 KiB
const express = require('express');
|
|
|
|
const fishCtrl = require('../controller/fishController');
|
|
|
|
/**
|
|
* @swagger
|
|
* tags:
|
|
* name: Fish
|
|
* description: Fish managing api
|
|
*/
|
|
|
|
/**
|
|
* @swagger
|
|
* components:
|
|
* schemas:
|
|
* fish:
|
|
* type: object
|
|
* required:
|
|
* - name
|
|
* - color
|
|
* - length
|
|
* - speed
|
|
* properties:
|
|
* name:
|
|
* type: string
|
|
* description: fish name
|
|
* color:
|
|
* type: string
|
|
* description: fish color
|
|
* length:
|
|
* type: string
|
|
* description: fish length
|
|
* speed:
|
|
* type: string
|
|
* description: fish speed
|
|
* example:
|
|
* fish:
|
|
* name: 'toto'
|
|
* color: 'red'
|
|
* length: 'very smoll'
|
|
* speed: 'fasted in the jar'
|
|
*/
|
|
exports.fishRouter = (opts) => {
|
|
const router = express.Router();
|
|
|
|
/**
|
|
* @swagger
|
|
* /fish/{id}:
|
|
* get:
|
|
* summary: route to get a fish by id
|
|
* tags: [Fish]
|
|
* parameters:
|
|
* - in: path
|
|
* name: id
|
|
* schema:
|
|
* type: integer
|
|
* required: true
|
|
* description: Numeric ID of the fish to get
|
|
* responses:
|
|
* 200:
|
|
* description: Success adding a fish
|
|
*/
|
|
router.get('/:id([0-9]+)', fishCtrl.getFish(opts));
|
|
|
|
/**
|
|
* @swagger
|
|
* /fish/:
|
|
* get:
|
|
* summary: route to get all the fishes
|
|
* tags: [Fish]
|
|
* responses:
|
|
* 200:
|
|
* description: Got all the fishes
|
|
*/
|
|
router.get('/', fishCtrl.getAllFish(opts));
|
|
|
|
/**
|
|
* @swagger
|
|
* /fish/add:
|
|
* post:
|
|
* summary: route to add a fish
|
|
* tags: [Fish]
|
|
* requestBody:
|
|
* required: true
|
|
* content:
|
|
* application/json:
|
|
* schema:
|
|
* $ref: '#/components/schemas/fish'
|
|
* responses:
|
|
* 200:
|
|
* description: Success adding a fish
|
|
*/
|
|
router.post('/add', fishCtrl.addFish(opts));
|
|
|
|
/**
|
|
* @swagger
|
|
* /fish/{id}:
|
|
* put:
|
|
* summary: route to update a fish
|
|
* tags: [Fish]
|
|
* parameters:
|
|
* - in: path
|
|
* name: id
|
|
* schema:
|
|
* type: integer
|
|
* required: true
|
|
* description: Numeric ID of the fish to get
|
|
* requestBody:
|
|
* required: true
|
|
* content:
|
|
* application/json:
|
|
* schema:
|
|
* $ref: '#/components/schemas/fish'
|
|
* responses:
|
|
* 200:
|
|
* description: Success updating the fish
|
|
*/
|
|
router.put('/:id([0-9]+)', fishCtrl.updateFish(opts));
|
|
|
|
/**
|
|
* @swagger
|
|
* /fish/{id}:
|
|
* delete:
|
|
* summary: route to delete a fish
|
|
* tags: [Fish]
|
|
* parameters:
|
|
* - in: path
|
|
* name: id
|
|
* schema:
|
|
* type: integer
|
|
* required: true
|
|
* description: Numeric ID of the fish to update
|
|
* responses:
|
|
* 200:
|
|
* description: Success deleting a fish
|
|
*/
|
|
router.delete('/:id([0-9]+)', fishCtrl.deleteFish(opts));
|
|
return router
|
|
}
|