package Ġconsult ing . tim hat die hand ander ma us . iface . api . queue Ċ Ċ import Ġconsult ing . tim hat die hand ander ma us . application . exception . Movie NotFoundException Ċ import Ġconsult ing . tim hat die hand ander ma us . application . repository . Queue Repository Ċ import Ġconsult ing . tim hat die hand ander ma us . application . use case . Remove From Queue Ċ import Ġconsult ing . tim hat die hand ander ma us . iface . api . model . Movie Delete Status Ċ import Ġconsult ing . tim hat die hand ander ma us . iface . api . model . Movie Request Converter Ċ import Ġconsult ing . tim hat die hand ander ma us . iface . api . model . Movie Response Ċ import Ġconsult ing . tim hat die hand ander ma us . iface . api . model . Movie Response Converter Ċ import Ġconsult ing . tim hat die hand ander ma us . iface . api . model . Queue Response Ċ import Ġconsult ing . tim hat die hand ander ma us . iface . api . model . Queue Response Converter Ċ import Ġjava . util . UUID Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . ws . rs . DELETE Ċ import Ġjavax . ws . rs . DefaultValue Ċ import Ġjavax . ws . rs . GET Ċ import Ġjavax . ws . rs . NotFoundException Ċ import Ġjavax . ws . rs . Path Ċ import Ġjavax . ws . rs . Path Param Ċ import Ġjavax . ws . rs . QueryParam Ċ Ċ @ Path ("/ queue ") Ċ class ĠQueue Resource Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġremove From Queue : ĠRemove From Queue , ĊĠĠĠ Ġprivate Ġval Ġqueue Repository : ĠQueue Repository , ĊĠĠĠ Ġprivate Ġval Ġqueue Response Converter : ĠQueue Response Converter , ĊĠĠĠ Ġprivate Ġval Ġmovie Request Converter : ĠMovie Request Converter , ĊĠĠĠ Ġprivate Ġval Ġmovie Response Converter : ĠMovie Response Converter , Ċ ) Ġ{ ĊĠĠĠ Ġ@ GET ĊĠĠĠ Ġfun Ġlist (): ĠQueue Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġqueue Items Ġ= Ġqueue Repository . list (). map ( queue Response Converter :: convertTo Response ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQueue Response ( queue Items ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DELETE ĊĠĠĠ Ġ@ Path ("/ { id }") ĊĠĠĠ Ġfun Ġdelete ( ĊĠĠĠĠĠĠĠ Ġ@ Path Param (" id ") ĊĠĠĠĠĠĠĠ Ġid : ĠString , ĊĠĠĠĠĠĠĠ Ġ@ QueryParam (" status ") ĊĠĠĠĠĠĠĠ Ġ@ DefaultValue (" Deleted ") ĊĠĠĠĠĠĠĠ Ġstatus : ĠMovie Delete Status , ĊĠĠĠ Ġ): ĠMovie Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuid Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUUID . fromString ( id ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalArgumentException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠID Ġis Ġnot Ġa ĠUUID , Ġso Ġit 's Ġunknown ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNotFound Exception () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmovie Status Ġ= Ġmovie Request Converter . to Movie Status ( status ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove From Queue ( uid , Ġmovie Status ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠMovie NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNotFound Exception ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġmovie Response Converter . convertTo Response ( result ) ĊĠĠĠ Ġ} Ċ } Ċ