void tws::wtss::prepare_timeseries_response(const timeseries_request_parameters& parameters, const timeseries_validated_parameters& vparameters, rapidjson::Document& doc, rapidjson::Value& jattributes, rapidjson::Document::AllocatorType& allocator) { // prepare result part in response rapidjson::Value jresult(rapidjson::kObjectType); jresult.AddMember("attributes", jattributes, allocator); // add timeline in the response rapidjson::Value jtimeline(rapidjson::kArrayType); std::size_t init_pos = vparameters.timeline->pos(vparameters.start_time_idx); std::size_t fin_pos = vparameters.timeline->pos(vparameters.end_time_idx); tws::core::copy_string_array(std::begin(vparameters.timeline->time_points()) + init_pos, std::begin(vparameters.timeline->time_points()) + (fin_pos + 1), jtimeline, allocator); jresult.AddMember("timeline", jtimeline, allocator); // add the pixel center location in response rapidjson::Value jcenter(rapidjson::kObjectType); jcenter.AddMember("latitude", vparameters.pixel_center_latitude, allocator); jcenter.AddMember("longitude", vparameters.pixel_center_longitude, allocator); jresult.AddMember("center_coordinates", jcenter, allocator); // prepare the query part in response rapidjson::Value jquery(rapidjson::kObjectType); jquery.AddMember("coverage", parameters.cv_name.c_str(), allocator); rapidjson::Value jqattributes(rapidjson::kArrayType); tws::core::copy_string_array(parameters.queried_attributes.begin(), parameters.queried_attributes.end(), jqattributes, allocator); jquery.AddMember("attributes", jqattributes, allocator); jquery.AddMember("latitude", parameters.latitude, allocator); jquery.AddMember("longitude", parameters.longitude, allocator); doc.AddMember("result", jresult, allocator); doc.AddMember("query", jquery, allocator); }
void CJsonQueryParam::toJson(CString& json, IApproveTypeTranslator* translator) { std::shared_ptr<Json::JsonObject> jquery((Json::JsonObject*)(Json::JsonFactory::createObject())); if (NULL != m_pbsc || NULL != m_pdsc || NULL != m_pAdvanced || m_pAq.get() != NULL){ Json::JsonObject& jSearch = jquery->add(L"search", Json::JsonFactory::createObject()).asObject(L"search"); if (NULL != m_pbsc) { Json::JsonObject& jBasic = jSearch.add(L"basic", Json::JsonFactory::createObject()).asObject(L"basic"); jBasic.add(L"text", Json::JsonFactory::createString((Json::json_char*)(LPCTSTR)m_pbsc->lpText)); jBasic.add(L"exact", Json::JsonFactory::createBool(m_pbsc->exact)); } if (NULL != m_pdsc) { Json::JsonObject& jDate = jSearch.add(L"date", Json::JsonFactory::createObject()).asObject(L"date"); jDate.add(L"startDate", Json::JsonFactory::createString((Json::json_char*)(LPCTSTR)m_pdsc->startDate)); jDate.add(L"endDate", Json::JsonFactory::createString((Json::json_char*)(LPCTSTR)m_pdsc->endDate)); } if (NULL != m_pAdvanced) { Json::JsonArray& jAdvance = jSearch.add(L"advanced", Json::JsonFactory::createArray()).asArray(L"advanced"); for (int i = 0, len = m_pAdvanced->size(); i < len; ++i){ jAdvance.add(Json::JsonFactory::createString((Json::json_char*)(LPCTSTR)m_pAdvanced->at(i))); } } if (m_pAq.get() != NULL) { jSearch.add(L"united", m_pAq->toJson()); } } if (!m_acsMap.empty() && NULL != translator){ LPCTSTR approveType = NULL; Json::JsonArray& jApprove = jquery->add(L"approve", Json::JsonFactory::createArray()).asArray(L"approve"); int k = 0; for (std::map<int, std::vector<ApproveCondition_t>>::iterator it = m_acsMap.begin(); it != m_acsMap.end(); ++it, ++k) { Json::JsonArray& jGroup = jApprove.add(Json::JsonFactory::createArray()).asArray(k); for (int i = 0, len = it->second.size(); i < len; ++i){ approveType = translator->Translate(it->second.at(i).type); if (NULL != approveType) { Json::JsonObject& jApproveItem = jGroup.add(Json::JsonFactory::createObject()).asObject(i); jApproveItem.add(L"type", Json::JsonFactory::createString((Json::json_char*)approveType)); jApproveItem.add(L"approved", Json::JsonFactory::createBool(it->second.at(i).approved)); } } } } if (!m_scs.empty()){ Json::JsonArray& jSort = jquery->add(L"sort", Json::JsonFactory::createArray()).asArray(L"sort"); for (int i = 0, len = m_scs.size(); i < len; ++i){ Json::JsonObject& jSortItem = jSort.add(Json::JsonFactory::createObject()).asObject(i); jSortItem.add(L"col", Json::JsonFactory::createInt(m_scs.at(i).col)); jSortItem.add(L"order", Json::JsonFactory::createBool(m_scs.at(i).asc)); } } Json::json_stringstream jss; jquery->asJson(jss); json = jss.str().c_str(); }