package Ġru . registration . bot . engine . commands . flow . states Ċ Ċ import Ġorg . telegram . telegram bots . meta . api . methods . send . SendMessage Ċ import Ġorg . telegram . telegram bots . meta . api . objects . Update Ċ import Ġorg . telegram . telegram bots . meta . bots . Abs Sender Ċ import Ġru . registration . bot . Message Service Ċ import Ġru . registration . bot . engine . chat Id Ċ import Ġru . registration . bot . engine . commands . flow . State Ċ import Ġru . registration . bot . engine . commands . flow . State Type . MAIL _ STATE Ċ import Ġru . registration . bot . engine . text Ċ import Ġru . registration . bot . engine . userId Ċ import Ġru . registration . bot . repositories . Bot Repository Ċ import Ġru . registration . bot . repositories . spec ifications . Set User Status Ċ import Ġru . registration . bot . repositories . spec ifications . Update Request Field Ċ Ċ class ĠMail State ( ĊĠĠĠ Ġprivate Ġval Ġmessages : ĠMessage Service , ĊĠĠĠ Ġprivate Ġval Ġbot Repository : ĠBot Repository , ĊĠĠĠ Ġprivate Ġval Ġnext State : ĠState Ċ ) Ġ: ĠState Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġask ( userId : ĠInt , Ġchat Id : ĠLong , Ġabs Sender : ĠAbs Sender ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbot Repository . execute ( Set User Status ( userId , ĠM AIL _ STATE )) ĊĠĠĠĠĠĠĠ Ġabs Sender . execute ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSend Message ( chat Id , Ġmessages . getMessage (" email _ state _ ask ")) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhandle ( update : ĠUpdate , Ġabs Sender : ĠAbs Sender ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġupdate . text Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ( isValid ( text )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbot Repository . execute ( Update Request Field ( update . userId , ĠPair (" email ", Ġtext ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext State . ask ( update . userId , Ġupdate . chat Id , Ġabs Sender ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġabs Sender . execute ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSend Message ( update . chat Id , Ġmessages . getMessage (" email _ state _ validation _ error ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠisValid ( text : ĠString ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġ"^ [ A - Z 0 - 9 ._ % +- ]+ @ [ A - Z 0 - 9 .- ]+ \\ .[ A - Z ]{ 2 , 6 }\ $" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Regex ( Regex Option . IGNORE _ CASE ). matches ( text ) Ċ } Ċ