package Ġdev . android . per u . data . source . firebase Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġper u . android . dev . datamodel . Answer Ċ import Ġper u . android . dev . datamodel . Attendance Ċ import Ġper u . android . dev . datamodel . Me et up Ċ import Ġper u . android . dev . datamodel . Question Ċ Ċ object ĠFirebase Parser Ġ{ ĊĊĠĠĠ Ġval Ġgson Ġby Ġlazy Ġ{ ĠGson () Ġ} ĊĊĠĠĠ Ġfun Ġto Me et up Object ( meet up Id : ĠString , Ġdata : ĠMap < String , ĠAny >): ĠMe et up ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmeet up : ĠMe et up ? Ġ= ĠGson (). fromJson ( gson . toJson ( data ), ĠMe et up :: class . java ) ĊĠĠĠĠĠĠĠ Ġreturn Ġmeet up ?. copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġmeet up Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestion naire Ġ= Ġmeet up . question naire ?. copy ( meet up Id Ġ= Ġmeet up Id ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Attendance ( data : ĠList < Map < String , ĠAny >> ): ĠList < Attendance > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdata . map NotNull Ġ{ Ġgson . fromJson ( gson . toJson ( it ), ĠAtt endance :: class . java ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Map Data ( question : ĠQuestion ): ĠMap < String , ĠAny >? { ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen ( val Ġanswer Ġ= Ġquestion . get Answer ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAnswer . Text Answer Ġ-> Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" type " Ġto Ġ" text ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" input " Ġto Ġanswer . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAnswer . Numeric Answer Ġ-> Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" type " Ġto Ġ" numeric ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" input " Ġto Ġanswer . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAnswer . Single Choice Answer Ġ-> Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" type " Ġto Ġ" single Choice ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" choices " Ġto Ġanswer . choice Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAnswer . Multi Choice Answer Ġ-> Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" type " Ġto Ġ" multi Choice ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" choices " Ġto Ġanswer . choices . join ToString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġseparator Ġ= Ġ"| ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransform Ġ= Ġ{ Ġit . choice Id Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }