package externalroute

import (
	"bitbucket.org/nemt/nemt-portal-api/application/applicationservice"
	"bitbucket.org/nemt/nemt-portal-api/application/notificationservice"
	"bitbucket.org/nemt/nemt-portal-api/application/tncservice"
	"bitbucket.org/nemt/nemt-portal-api/infra/config"
	"github.com/labstack/echo"
)

const (
	rootRoute    = "/:ride_uuid/:user_uuid"
	cancelRoute  = "/:ride_uuid/:user_uuid/cancel"
	messageRoute = "/:ride_uuid/:user_uuid/message"
	readyRoute   = "/:ride_uuid/:user_uuid/ready"
)

// Register authenticate route
func Register(r *echo.Group, cfg *config.Config, svc *applicationservice.Service, tnc *tncservice.Service, notification *notificationservice.Service) {
	ctrl := controllerInstance(cfg, svc, tnc, notification)
	r.GET(rootRoute, ctrl.handle)
	r.PUT(cancelRoute, ctrl.handleCancel)
	r.POST(messageRoute, ctrl.handleMessage)
	r.POST(readyRoute, ctrl.handleReady)
}
