/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 ĠVS CT Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* Ġ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġfr . vs ct . to ck . nlp . front . storage . mongo Ċ Ċ import Ġcom . mongodb . client . Mongo Collection Ċ import Ġcom . mongodb . client . model . Index Options Ċ import Ġfr . vs ct . to ck . nlp . front . service . storage . Intent Definition DAO Ċ import Ġfr . vs ct . to ck . nlp . front . shared . config . Application Definition Ċ import Ġfr . vs ct . to ck . nlp . front . shared . config . Intent Definition Ċ import Ġfr . vs ct . to ck . nlp . front . storage . mongo . Mongo Front Configuration . database Ċ import Ġorg . lit ote . km ongo . Id Ċ import Ġorg . lit ote . km ongo . delete One ById Ċ import Ġorg . lit ote . km ongo . ensure Index Ċ import Ġorg . lit ote . km ongo . find Ċ import Ġorg . lit ote . km ongo . findOne Ċ import Ġorg . lit ote . km ongo . findOne ById Ċ import Ġorg . lit ote . km ongo . get Collection Ċ import Ġorg . lit ote . km ongo . json Ċ import Ġorg . lit ote . km ongo . save Ċ Ċ /** Ċ Ġ* Ċ Ġ*/ Ċ object ĠIntent Definition Mongo DAO Ġ: ĠIntent Definition DAO Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcol : ĠMongo Collection < Intent Definition > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġdatabase . get Collection < Intent Definition >() ĊĠĠĠĠĠĠĠ Ġc . ensure Index (" {' applications ': 1 }") ĊĠĠĠĠĠĠĠ Ġc . ensure Index (" {' namespace ': 1 ,' name ': 1 }", ĠIndex Options (). unique ( true )) ĊĠĠĠĠĠĠĠ Ġc ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Intent sBy Application Id ( application Id : ĠId < Application Definition >): ĠList < Intent Definition > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcol . find (" {' applications ': ${ application Id . json }} "). toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Intent By Namespace And Name ( namespace : ĠString , Ġname : ĠString ): ĠIntent Definition ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcol . findOne (" {' name ': ${ name . json }, ' namespace ': ${ namespace . json }} ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Intent ById ( id : ĠId < Intent Definition >): ĠIntent Definition ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcol . findOne ById ( id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsave ( intent : ĠIntent Definition ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcol . save ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Intent ById ( id : ĠId < Intent Definition >) Ġ{ ĊĠĠĠĠĠĠĠ Ġcol . delete One ById ( id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Intent s Using Entity ( entity Type : ĠString ): ĠList < Intent Definition > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcol . find (" {' entities . entity TypeName ': ${ entity Type . json }} "). toList () ĊĠĠĠ Ġ} Ċ }