package Ġcom . dy me solutions . lin ke de vents Ċ Ċ import Ġcom . dy me solutions . lin ke de vents . controllers .* Ċ import Ġcom . google . gson . JsonObject Ċ import Ġspark . Model AndView Ċ import Ġspark . Spark .* Ċ import Ġspark . template . thy me leaf . Th y me leaf Template Engine Ċ Ċ class ĠApp Route Ġ{ ĊĠĠĠ Ġprivate Ġval Ġevent Controller Ġ= ĠEvent Controller () ĊĠĠĠ Ġprivate Ġval Ġimage Controller Ġ= ĠImage Controller () ĊĠĠĠ Ġprivate Ġval Ġkeyword Controller Ġ= ĠKeyword Controller () ĊĠĠĠ Ġprivate Ġval Ġkeyword Set Controller Ġ= ĠKeyword Set Controller () ĊĠĠĠ Ġprivate Ġval Ġlogin Controller Ġ= ĠLogin Controller () ĊĠĠĠ Ġprivate Ġval Ġmonitor Controller Ġ= ĠMonitor Controller () ĊĠĠĠ Ġprivate Ġval Ġorganization Controller Ġ= ĠOrganization Controller () ĊĠĠĠ Ġprivate Ġval Ġplace Controller Ġ= ĠPlace Controller () ĊĠĠĠ Ġprivate Ġval Ġsocial App Controller Ġ= ĠSocial App Controller () ĊĠĠĠ Ġprivate Ġval Ġuser Controller Ġ= ĠUser Controller () ĊĠĠĠ Ġprivate Ġval Ġreport Controller Ġ= ĠReport Controller () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIn its Ġall Ġroutes , Ġfollowing ĠCRUD Ġoperations ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġinit Routes () Ġ{ ĊĠĠĠĠĠĠĠ Ġnot Found Ġ{ Ġ_, Ġres Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres . type (" application / json ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠJsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . addProperty (" message ", Ġ" not Ġfound ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġget ("/") Ġ{ Ġ_, Ġres Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres . redirect ("${ App . properties [" server . api Path "] }/ ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpath ( App . properties [" server . api Path "]. toString ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġforwarding Ġslash ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ("") Ġ{ Ġ_, Ġres Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres . redirect ("/") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/") Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel [" app . title "] Ġ= Ġ" Linked ĠEvents ĠAPI " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTh y me leaf Template Engine (). render ( Model AndView ( model , Ġ" api / index ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ event ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("") Ġ{ Ġ_, Ġres Ġ-> Ġres . redirect ("/") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/") Ġ{ Ġreq , Ġres Ġ-> Ġevent Controller . getAll ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/ : eventId /") Ġ{ Ġreq , Ġres Ġ-> Ġevent Controller . getById ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost ("/") Ġ{ Ġreq , Ġres Ġ-> Ġevent Controller . add ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput ("/ : eventId /") Ġ{ Ġreq , Ġres Ġ-> Ġevent Controller . update ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ keyword _ set ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/") Ġ{ Ġreq , Ġres Ġ-> Ġkeyword Set Controller . getAll ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/ : keyword SetId /") Ġ{ Ġreq , Ġres Ġ-> Ġkeyword Set Controller . getById ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ keyword ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("") Ġ{ Ġ_, Ġres Ġ-> Ġres . redirect ("/") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/") Ġ{ Ġreq , Ġres Ġ-> Ġkeyword Controller . getAll ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/ exists /") Ġ{ Ġreq , Ġres Ġ-> Ġkeyword Controller . get Exists ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/ : keyword Id /") Ġ{ Ġreq , Ġres Ġ-> Ġkeyword Controller . getById ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost ("/") Ġ{ Ġreq , Ġres Ġ-> Ġkeyword Controller . add ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ organization ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("") Ġ{ Ġ_, Ġres Ġ-> Ġres . redirect ("/") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/") Ġ{ Ġreq , Ġres Ġ-> Ġorganization Controller . getAll ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ place ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("") Ġ{ Ġ_, Ġres Ġ-> Ġres . redirect ("/") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/") Ġ{ Ġreq , Ġres Ġ-> Ġplace Controller . getAll ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ image ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("") Ġ{ Ġ_, Ġres Ġ-> Ġres . redirect ("/") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/") Ġ{ Ġreq , Ġres Ġ-> Ġimage Controller . getAll ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost ("/") Ġ{ Ġreq , Ġres Ġ-> Ġimage Controller . add ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost ("/ upload /") Ġ{ Ġreq , Ġres Ġ-> Ġimage Controller . upload Image ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPass Ġusername Ġand Ġe - mail Ġas Ġquery Ġparameters Ġto Ġthese Ġroutes : ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ user ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("") Ġ{ Ġ_, Ġres Ġ-> Ġres . redirect ("/") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/ exists /") Ġ{ Ġreq , Ġres Ġ-> Ġuser Controller . get Exists ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPass Ġdetails Ġas ĠJSON Ġto Ġthese Ġroutes : ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost ("/ login /") Ġ{ Ġreq , Ġres Ġ-> Ġlogin Controller . login ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost ("/ logout /") Ġ{ Ġreq , Ġres Ġ-> Ġlogin Controller . logout ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost ("/ register /") Ġ{ Ġreq , Ġres Ġ-> Ġlogin Controller . register ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost ("/ verify - email /") Ġ{ Ġreq , Ġres Ġ-> Ġlogin Controller . verify Email ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost ("/ reset - password /") Ġ{ Ġreq , Ġres Ġ-> Ġlogin Controller . reset Password ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost ("/ verify - reset - key /") Ġ{ Ġreq , Ġres Ġ-> Ġlogin Controller . verify Reset Key ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost ("/ change - password /") Ġ{ Ġreq , Ġres Ġ-> Ġlogin Controller . change Password With Reset Key ( req , Ġres ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSocial Ġaccounts ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ auth ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGoogle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/ google / callback /") Ġ{ Ġreq , Ġres Ġ-> Ġsocial App Controller . login With Google ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCan Ġbe Ġused Ġfor Ġexample Ġin ĠAWS Ġfor Ġmonitoring ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ health ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("") Ġ{ Ġ_, Ġres Ġ-> Ġres . redirect ("/") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/") Ġ{ Ġ_, Ġres Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres . status ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres . type (" text / plain ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" OK " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ**** ĠPRO TECT ED ĠROUT ES Ġ( note Ġthat Ġalso ĠPOST Ġ& ĠPUT Ġmethods Ġabove Ġare Ġprotected ) Ġ**** ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠProtected ĠSUP ER ĠUSER Ġroutes Ġ( App Filter ): ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ admin ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ keyword _ set /") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/") Ġ{ Ġreq , Ġres Ġ-> Ġkeyword Controller . getAll ( req , Ġres , Ġtrue ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ keyword /") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/") Ġ{ Ġreq , Ġres Ġ-> Ġkeyword Controller . getAll ( req , Ġres , Ġtrue ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ user ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/") Ġ{ Ġreq , Ġres Ġ-> Ġuser Controller . getAll ( req , Ġres , Ġfalse , Ġtrue ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput ("/") Ġ{ Ġreq , Ġres Ġ-> Ġuser Controller . update ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠProtected ĠADMIN Ġroutes Ġ( App Filter ): ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ manager ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ event ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/") Ġ{ Ġreq , Ġres Ġ-> Ġevent Controller . getAll ( req , Ġres , Ġtrue ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/ : eventId /") Ġ{ Ġreq , Ġres Ġ-> Ġevent Controller . getById For Edit ( req , Ġres , Ġtrue ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput ("/ publish /") Ġ{ Ġreq , Ġres Ġ-> Ġevent Controller . publish ( req , Ġres , Ġtrue ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput ("/") Ġ{ Ġreq , Ġres Ġ-> Ġevent Controller . update ( req , Ġres , Ġtrue ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete ("/ : eventId /") Ġ{ Ġreq , Ġres Ġ-> Ġevent Controller . delete ( req , Ġres , Ġtrue ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠProtected ĠBAS IC Ġroutes Ġ( App Filter ): ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ basic ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ event ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/") Ġ{ Ġreq , Ġres Ġ-> Ġevent Controller . getAll By LoggedIn User ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/ : eventId /") Ġ{ Ġreq , Ġres Ġ-> Ġevent Controller . getById For Edit ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost ("/") Ġ{ Ġreq , Ġres Ġ-> Ġevent Controller . add ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput ("/ : eventId /") Ġ{ Ġreq , Ġres Ġ-> Ġevent Controller . update ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete ("/ : eventId /") Ġ{ Ġreq , Ġres Ġ-> Ġevent Controller . delete ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠImages ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost ("/ image /") Ġ{ Ġreq , Ġres Ġ-> Ġimage Controller . add ( req , Ġres ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGet Ġyour Ġown Ġinfo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/ user /") Ġ{ Ġreq , Ġres Ġ-> Ġuser Controller . get LoggedIn User ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠReporting ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ report ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/ event / count /") Ġ{ Ġreq , Ġres Ġ-> Ġreport Controller . get Events Count ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/ keyword / usage / count /") Ġ{ Ġreq , Ġres Ġ-> Ġreport Controller . getKey word Usage Count ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/ place / usage / count /") Ġ{ Ġreq , Ġres Ġ-> Ġreport Controller . get Place Usage Count ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ("/ user / count /") Ġ{ Ġreq , Ġres Ġ-> Ġreport Controller . getUser Count ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMonitoring Ġendpoint Ġfor ĠUI ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath ("/ monitor ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost ("/ ui /") Ġ{ Ġreq , Ġres Ġ-> Ġmonitor Controller . save Log ( req , Ġres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ