// // Created by stephane bourque on 2022-01-31. // #include "RESTAPI_totp_handler.h" #include "TotpCache.h" namespace OpenWifi { void RESTAPI_totp_handler::DoGet() { auto Reset = GetBoolParameter("reset",false); std::string QRCode; if(TotpCache()->StartValidation(UserInfo_.userinfo,false,QRCode,Reset)) { return SendFileContent(QRCode, "image/svg+xml","qrcode.svg"); } return BadRequest(RESTAPI::Errors::InvalidCommand); } void RESTAPI_totp_handler::DoPut() { auto Value = GetParameter("value",""); auto nextIndex = GetParameter("index",0); bool moreCodes=false; RESTAPI::Errors::msg Err; if(TotpCache()->ContinueValidation(UserInfo_.userinfo,false,Value,nextIndex,moreCodes, Err)) { Poco::JSON::Object Answer; Answer.set("nextIndex", nextIndex); Answer.set("moreCodes", moreCodes); return ReturnObject(Answer); } return BadRequest(Err); } }