import express from 'express';
import {
  signIn,
  getProfile,
  forgotPassword,
  resetPassword,
  changePassword,
  getRiderRoute,
  logOut,
  markRouteInProgress,
  markRouteComplete,
  markOrderInProgress,
  markOrderComplete,
  markOrderAsCancelled,
  startAdhoc,
  endAdhoc,
  orderOTP,
} from '../controllers';
import { authenticate, isRider } from '../middlewares/authentication';

const router = express.Router();

router
  .post('/signin', signIn)
  .post('/signout', authenticate, logOut)
  .get('/current-user', authenticate, getProfile)
  .post('/forgot-password', forgotPassword)
  .patch('/reset-password', resetPassword)
  .patch('/change-password', authenticate, isRider, changePassword)
  .get('/routes', authenticate, isRider, getRiderRoute)
  .patch(
    '/orders/:orderID/inprogress',
    authenticate,
    isRider,
    markOrderInProgress,
  )
  .patch('/orders/:orderID/cancel', authenticate, isRider, markOrderAsCancelled)
  .patch('/orders/:orderID/complete/:otp', authenticate, isRider, markOrderComplete)
  .patch(
    '/routes/:routeID/inprogress',
    authenticate,
    isRider,
    markRouteInProgress,
  )
  .get('/orders/:orderID/otp', authenticate, isRider, orderOTP)
  .patch('/routes/:routeID/complete', authenticate, isRider, markRouteComplete)
  .patch('/routes/:routeID/adhocs/start', authenticate, isRider,startAdhoc)
  .patch('/routes/:routeID/adhocs/end', authenticate, isRider, endAdhoc);

export = router;
