/* Ċ Ġ* Ġ#% L Ċ Ġ* Ġinsight - reporting Ċ Ġ* Ġ%% Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 ĠThe ĠPlugin ĠAuthors Ċ Ġ* Ġ%% Ċ Ġ* Ġ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 . Ċ Ġ* Ġ# L % Ċ Ġ*/ Ċ Ċ package Ġcom . linked planet . plugin . con fluence . insight reporting . impl . insight Ċ Ċ interface ĠIns ight Api Ġ{ ĊĊĠĠĠ Ġfun ĠgetObject Schemas (): ĠIns ight Object Schemas Result ĊĊĠĠĠ Ġfun ĠgetObject Types ( object Schema Id : ĠInt ): ĠList < Insight ObjectType >? ĊĊĠĠĠ Ġfun Ġget ObjectType ById ( object Schema Id : ĠInt , Ġid : ĠInt ): ĠIns ight ObjectType ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetObject Types ( object Schema Id )?. find Ġ{ Ġit . id Ġ== Ġid Ġ} ĊĊĠĠĠ Ġfun Ġget Objects Via I ql ( object Schema Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi ql : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Attributes : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextended : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult PerPage : ĠInt ): ĠIns ight I ql Object Result ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalls Ġ[ Insight Api . get Objects Via I ql ] Ġas Ġoften Ġas Ġthere Ġare Ġresult Ġpages Ġremaining , Ġstarting ĊĠĠĠĠ Ġ* Ġfrom Ġthe Ġgiven Ġpage . ĠFor Ġeach Ġresult Ġpage , Ġall Ġobjects Ġare : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠĠ 1 . Ġfiltered Ġvia Ġthe Ġprovided Ġfilter Ġfunction ĊĠĠĠĠ Ġ* ĠĠ 2 . Ġtransformed Ġvia Ġthe Ġprovided Ġmapper Ġfunction ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġmapped Ġresults Ġare Ġcollected Ġand Ġreturned . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġ< T > Ġreduce Objects From I ql All Pages ( object Schema Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi ql : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Attributes : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextended : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult PerPage : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter : Ġ( Insight Object ) Ġ-> ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmapper : Ġ( Insight Object ) Ġ-> ĠT ): ĠList < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġget Objects Via I ql ( object Schema Id , Ġi ql , Ġinclude Attributes , Ġextended , Ġpage , Ġresult PerPage ) ĊĠĠĠĠĠĠĠ Ġval Ġmapped Ġ= Ġresult . object Entries . filter ( filter ). map ( mapper ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( result . pageSize Ġ> Ġpage ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapped Ġ+ Ġreduce Objects From I ql All Pages ( object Schema Id , Ġi ql , Ġinclude Attributes , Ġextended , Ġpage Ġ+ Ġ 1 , Ġresult PerPage , Ġfilter , Ġmapper ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapped ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġor Ġupdate Ġan Ġobject Ġattribute Ġvalue . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see Ġ< a Ġhref =" https :// documentation . ri ada . se / display / IC V 5 3 / Object + Attributes +- + REST "> Insight ĠREST ĠDocumentation Ġ- ĠObject ĠAttributes </ a > ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupsert Object AttributeValue ( insight Object : ĠIns ight Object , Ġattribute : ĠIns ight Object Attribute , Ġvalue : ĠString ) ĊĊĊĠĠĠ Ġdata Ġclass ĠIns ight I ql Object Result ( val Ġobject Entries : ĠList < Insight Object >, Ġval ĠpageSize : ĠInt ) ĊĊĠĠĠ Ġdata Ġclass ĠIns ight Object Schemas Result ( val Ġobject schemas : ĠList < Insight Object Schema >) ĊĊĠĠĠ Ġdata Ġclass ĠIns ight Object Schema ( val Ġid : ĠInt , Ġval Ġname : ĠString ) ĊĊĠĠĠ Ġdata Ġclass ĠIns ight Object ( val Ġid : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobject Key : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobject Type : ĠIns ight ObjectType , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġattributes Ġwill Ġbe Ġnull Ġwhen Ġi ql Ġendpoint Ġis Ġcalled Ġwith Ġinclude Attributes Ġset Ġto Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġattributes : ĠList < Insight Object Attribute > ?) ĊĊĠĠĠ Ġdata Ġclass ĠIns ight ObjectType ( val Ġid : ĠInt , Ġval Ġparent Object TypeId : ĠInt ?, Ġval Ġname : ĠString , Ġval Ġobject Schema Id : ĠInt ) ĊĊĠĠĠ Ġdata Ġclass ĠIns ight ObjectType Attribute ( val Ġid : ĠInt , Ġval Ġname : ĠString , Ġval Ġobject Type : ĠIns ight ObjectType ) ĊĊĠĠĠ Ġdata Ġclass ĠIns ight Object Attribute ( val Ġid : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobject Type Attribute : ĠIns ight ObjectType Attribute , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobject Attribute Values : ĠList < Insight Object AttributeValue >) ĊĊĠĠĠ Ġdata Ġclass ĠIns ight Object AttributeValue ( val Ġvalue : ĠString ?, Ġval Ġreferenced Object : ĠIns ight Object Reference ? Ġ= Ġnull ) ĊĊĠĠĠ Ġdata Ġclass ĠIns ight Object Reference ( val Ġid : ĠInt , Ġval Ġkey : ĠString , Ġval Ġname : ĠString , Ġval Ġobject Type : ĠIns ight ObjectType ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAPI _ PATH Ġ= Ġ"/ rest / insight / 1 . 0 " ĊĊĊĠĠĠ Ġ} Ċ Ċ } Ċ