/** * Applies validation on block * @param block * @return Answer containing found error if any */ Answer validate(const interface::EmptyBlock &block) const { Answer answer; ReasonsGroupType reason; reason.first = "EmptyBlock"; field_validator_.validateCreatedTime(reason, block.createdTime()); field_validator_.validateHeight(reason, block.height()); if (not reason.second.empty()) { answer.addReason(std::move(reason)); } return answer; }
/** * Applies validation to given query * @param qry - query to validate * @return Answer containing found error if any */ Answer validate(const interface::Query &qry) const { Answer answer; std::string qry_reason_name = "Query"; ReasonsGroupType qry_reason(qry_reason_name, GroupedReasons()); field_validator_.validateCreatorAccountId(qry_reason, qry.creatorAccountId()); field_validator_.validateCreatedTime(qry_reason, qry.createdTime()); field_validator_.validateCounter(qry_reason, qry.queryCounter()); if (not qry_reason.second.empty()) { answer.addReason(std::move(qry_reason)); } auto reason = boost::apply_visitor(query_field_validator_, qry.get()); if (not reason.second.empty()) { answer.addReason(std::move(reason)); } return answer; }
/** * Applies validation to given query * @param qry - query to validate * @return Answer containing found error if any */ Answer validate(const interface::BlocksQuery &qry) const { Answer answer; std::string qry_reason_name = "Blocks query"; ReasonsGroupType qry_reason(qry_reason_name, GroupedReasons()); field_validator_.validateCreatorAccountId(qry_reason, qry.creatorAccountId()); field_validator_.validateCreatedTime(qry_reason, qry.createdTime()); field_validator_.validateCounter(qry_reason, qry.queryCounter()); if (not qry_reason.second.empty()) { answer.addReason(std::move(qry_reason)); } return answer; }