package Ġir . ma fat ih . ma fat ih server . rest Ċ Ċ import Ġir . ma fat ih . ma fat ih server . data . M af at ih DataSource Ċ import Ġir . ma fat ih . ma fat ih server . model . Article Ċ import Ġir . ma fat ih . ma fat ih server . model . Chapter Ċ import Ġir . ma fat ih . ma fat ih server . model . Section Ċ import Ġorg . springframework . web . bind . annotation . GetMapping Ċ import Ġorg . springframework . web . bind . annotation . PathVariable Ċ import Ġorg . springframework . web . bind . annotation . RestController Ċ Ċ @ RestController Ċ class ĠMain Controller Ġ{ ĊĊĠĠĠ Ġ@ GetMapping ("/ api / context ") ĊĠĠĠ Ġfun ĠgetContext (): ĠList < Chapter > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠM af at ih DataSource . ma fat ih . map Ġ{ Ġit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChapter ( it . id , Ġit . title , Ġit . sections . map Ġ{ Ġit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSection ( it . id , Ġit . title , Ġit . articles . map Ġ{ Ġit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArticle ( it . id , Ġit . title , Ġ"", Ġarray ListOf ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ GetMapping ("/ api / article /{ chapter Id }/{ section Id }/{ article Id }") ĊĠĠĠ Ġfun Ġget Article (@ PathVariable Ġchapter Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ PathVariable Ġsection Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ PathVariable Ġarticle Id : ĠInt ): ĠArticle Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠM af at ih DataSource . ma fat ih [ chapter Id ]. sections [ section Id ]. articles [ article Id ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ GetMapping ("/ api / search /{ query }") ĊĠĠĠ Ġfun Ġsearch For (@ PathVariable Ġquery : ĠString ) Ġ: ĠList < Chapter > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsections Ġ= ĠM af at ih DataSource . ma fat ih [ 0 ]. sections . filter Ġ{ Ġit Ġ-> Ġit . title . contains ( query ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġarray ListOf ( Chapter ( 0 , ĠM af at ih DataSource . ma fat ih [ 0 ]. title , Ġsections )) ĊĠĠĠ Ġ} Ċ }