package Ġcom . nim bus framework . nim bus local . deployment . webserver . web console Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . nim bus framework . nim bus core . annotations . function . HttpMethod Ċ import Ġcom . nim bus framework . nim bus local . Local Nim bus Deployment Ċ import Ġcom . nim bus framework . nim bus local . deployment . webserver . resources . Web Resource Ċ import Ġcom . nim bus framework . nim bus local . deployment . webserver . web console . models . Notification Information Ċ import Ġjavax . servlet . http . HttpServletRequest Ċ import Ġjavax . servlet . http . HttpServletResponse Ċ Ċ class ĠNotification Api Resource ( private Ġval Ġhttp Method : ĠHttpMethod ) Ġ: ĠWeb Resource ( array Of (), ĠlistOf (), Ġ"") Ġ{ ĊĊĠĠĠ Ġval ĠobjectMapper Ġ= ĠObjectMapper () ĊĊĊĠĠĠ Ġoverride Ġfun Ġwrite Response ( request : ĠHttpServletRequest , Ġresponse : ĠHttpServletResponse , Ġtarget : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocal Nim bus Deployment Ġ= ĠLocal Nim bus Deployment . getInstance () ĊĠĠĠĠĠĠĠ Ġresponse . setHeader (" Access - Control - Allow - Origin ", Ġ"* ") ĊĠĠĠĠĠĠĠ Ġresponse . setHeader (" Access - Control - Allow - Headers ", Ġ" content - type ") ĊĠĠĠĠĠĠĠ Ġval Ġoperation Ġ= Ġrequest . getParameter (" operation ") ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( http Method ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpMethod . GET Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġqueues Ġ= Ġlocal Nim bus Deployment . local Resource Holder . notification Topics ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( operation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" list Notification Topics " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠlistOf Notification Topics Ġ= Ġqueues . map Ġ{ Ġ( topic Name , Ġtopic ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Information ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtopic Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtopic . getNumberOf Sub scribers (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtopic . general Sub scribers . map Ġ{ Ġ(_, Ġsubscriber Information ) Ġ-> Ġsubscriber Information Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtopic . get Function Sub scribers (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtopic . getTotal NumberOf Notifications () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtables Json Ġ= ĠobjectMapper . writeValue AsString ( listOf Notification Topics ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . output Stream . buffered Writer (). use Ġ{ Ġit . write ( tables Json ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpMethod . POST Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtopic Name Ġ= Ġrequest . getParameter (" topic Name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotification Topic Ġ= Ġlocal Nim bus Deployment . local Resource Holder . notification Topics [ topic Name ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( notification Topic Ġ!= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( operation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" notify " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġrequest . inputStream . buffered Reader (). use Ġ{ Ġit . read Text () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Topic . notify Json ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{}} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ