/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #include <aws/pinpoint/model/OpenHours.h> #include <aws/core/utils/json/JsonSerializer.h> #include <utility> using namespace Aws::Utils::Json; using namespace Aws::Utils; namespace Aws { namespace Pinpoint { namespace Model { OpenHours::OpenHours() : m_eMAILHasBeenSet(false), m_sMSHasBeenSet(false), m_pUSHHasBeenSet(false), m_vOICEHasBeenSet(false), m_cUSTOMHasBeenSet(false) { } OpenHours::OpenHours(JsonView jsonValue) : m_eMAILHasBeenSet(false), m_sMSHasBeenSet(false), m_pUSHHasBeenSet(false), m_vOICEHasBeenSet(false), m_cUSTOMHasBeenSet(false) { *this = jsonValue; } OpenHours& OpenHours::operator =(JsonView jsonValue) { if(jsonValue.ValueExists("EMAIL")) { Aws::Map<Aws::String, JsonView> eMAILJsonMap = jsonValue.GetObject("EMAIL").GetAllObjects(); for(auto& eMAILItem : eMAILJsonMap) { Aws::Utils::Array<JsonView> listOfOpenHoursRulesJsonList = eMAILItem.second.AsArray(); Aws::Vector<OpenHoursRule> listOfOpenHoursRulesList; listOfOpenHoursRulesList.reserve((size_t)listOfOpenHoursRulesJsonList.GetLength()); for(unsigned listOfOpenHoursRulesIndex = 0; listOfOpenHoursRulesIndex < listOfOpenHoursRulesJsonList.GetLength(); ++listOfOpenHoursRulesIndex) { listOfOpenHoursRulesList.push_back(listOfOpenHoursRulesJsonList[listOfOpenHoursRulesIndex].AsObject()); } m_eMAIL[DayOfWeekMapper::GetDayOfWeekForName(eMAILItem.first)] = std::move(listOfOpenHoursRulesList); } m_eMAILHasBeenSet = true; } if(jsonValue.ValueExists("SMS")) { Aws::Map<Aws::String, JsonView> sMSJsonMap = jsonValue.GetObject("SMS").GetAllObjects(); for(auto& sMSItem : sMSJsonMap) { Aws::Utils::Array<JsonView> listOfOpenHoursRulesJsonList = sMSItem.second.AsArray(); Aws::Vector<OpenHoursRule> listOfOpenHoursRulesList; listOfOpenHoursRulesList.reserve((size_t)listOfOpenHoursRulesJsonList.GetLength()); for(unsigned listOfOpenHoursRulesIndex = 0; listOfOpenHoursRulesIndex < listOfOpenHoursRulesJsonList.GetLength(); ++listOfOpenHoursRulesIndex) { listOfOpenHoursRulesList.push_back(listOfOpenHoursRulesJsonList[listOfOpenHoursRulesIndex].AsObject()); } m_sMS[DayOfWeekMapper::GetDayOfWeekForName(sMSItem.first)] = std::move(listOfOpenHoursRulesList); } m_sMSHasBeenSet = true; } if(jsonValue.ValueExists("PUSH")) { Aws::Map<Aws::String, JsonView> pUSHJsonMap = jsonValue.GetObject("PUSH").GetAllObjects(); for(auto& pUSHItem : pUSHJsonMap) { Aws::Utils::Array<JsonView> listOfOpenHoursRulesJsonList = pUSHItem.second.AsArray(); Aws::Vector<OpenHoursRule> listOfOpenHoursRulesList; listOfOpenHoursRulesList.reserve((size_t)listOfOpenHoursRulesJsonList.GetLength()); for(unsigned listOfOpenHoursRulesIndex = 0; listOfOpenHoursRulesIndex < listOfOpenHoursRulesJsonList.GetLength(); ++listOfOpenHoursRulesIndex) { listOfOpenHoursRulesList.push_back(listOfOpenHoursRulesJsonList[listOfOpenHoursRulesIndex].AsObject()); } m_pUSH[DayOfWeekMapper::GetDayOfWeekForName(pUSHItem.first)] = std::move(listOfOpenHoursRulesList); } m_pUSHHasBeenSet = true; } if(jsonValue.ValueExists("VOICE")) { Aws::Map<Aws::String, JsonView> vOICEJsonMap = jsonValue.GetObject("VOICE").GetAllObjects(); for(auto& vOICEItem : vOICEJsonMap) { Aws::Utils::Array<JsonView> listOfOpenHoursRulesJsonList = vOICEItem.second.AsArray(); Aws::Vector<OpenHoursRule> listOfOpenHoursRulesList; listOfOpenHoursRulesList.reserve((size_t)listOfOpenHoursRulesJsonList.GetLength()); for(unsigned listOfOpenHoursRulesIndex = 0; listOfOpenHoursRulesIndex < listOfOpenHoursRulesJsonList.GetLength(); ++listOfOpenHoursRulesIndex) { listOfOpenHoursRulesList.push_back(listOfOpenHoursRulesJsonList[listOfOpenHoursRulesIndex].AsObject()); } m_vOICE[DayOfWeekMapper::GetDayOfWeekForName(vOICEItem.first)] = std::move(listOfOpenHoursRulesList); } m_vOICEHasBeenSet = true; } if(jsonValue.ValueExists("CUSTOM")) { Aws::Map<Aws::String, JsonView> cUSTOMJsonMap = jsonValue.GetObject("CUSTOM").GetAllObjects(); for(auto& cUSTOMItem : cUSTOMJsonMap) { Aws::Utils::Array<JsonView> listOfOpenHoursRulesJsonList = cUSTOMItem.second.AsArray(); Aws::Vector<OpenHoursRule> listOfOpenHoursRulesList; listOfOpenHoursRulesList.reserve((size_t)listOfOpenHoursRulesJsonList.GetLength()); for(unsigned listOfOpenHoursRulesIndex = 0; listOfOpenHoursRulesIndex < listOfOpenHoursRulesJsonList.GetLength(); ++listOfOpenHoursRulesIndex) { listOfOpenHoursRulesList.push_back(listOfOpenHoursRulesJsonList[listOfOpenHoursRulesIndex].AsObject()); } m_cUSTOM[DayOfWeekMapper::GetDayOfWeekForName(cUSTOMItem.first)] = std::move(listOfOpenHoursRulesList); } m_cUSTOMHasBeenSet = true; } return *this; } JsonValue OpenHours::Jsonize() const { JsonValue payload; if(m_eMAILHasBeenSet) { JsonValue eMAILJsonMap; for(auto& eMAILItem : m_eMAIL) { Aws::Utils::Array<JsonValue> listOfOpenHoursRulesJsonList(eMAILItem.second.size()); for(unsigned listOfOpenHoursRulesIndex = 0; listOfOpenHoursRulesIndex < listOfOpenHoursRulesJsonList.GetLength(); ++listOfOpenHoursRulesIndex) { listOfOpenHoursRulesJsonList[listOfOpenHoursRulesIndex].AsObject(eMAILItem.second[listOfOpenHoursRulesIndex].Jsonize()); } eMAILJsonMap.WithArray(DayOfWeekMapper::GetNameForDayOfWeek(eMAILItem.first), std::move(listOfOpenHoursRulesJsonList)); } payload.WithObject("EMAIL", std::move(eMAILJsonMap)); } if(m_sMSHasBeenSet) { JsonValue sMSJsonMap; for(auto& sMSItem : m_sMS) { Aws::Utils::Array<JsonValue> listOfOpenHoursRulesJsonList(sMSItem.second.size()); for(unsigned listOfOpenHoursRulesIndex = 0; listOfOpenHoursRulesIndex < listOfOpenHoursRulesJsonList.GetLength(); ++listOfOpenHoursRulesIndex) { listOfOpenHoursRulesJsonList[listOfOpenHoursRulesIndex].AsObject(sMSItem.second[listOfOpenHoursRulesIndex].Jsonize()); } sMSJsonMap.WithArray(DayOfWeekMapper::GetNameForDayOfWeek(sMSItem.first), std::move(listOfOpenHoursRulesJsonList)); } payload.WithObject("SMS", std::move(sMSJsonMap)); } if(m_pUSHHasBeenSet) { JsonValue pUSHJsonMap; for(auto& pUSHItem : m_pUSH) { Aws::Utils::Array<JsonValue> listOfOpenHoursRulesJsonList(pUSHItem.second.size()); for(unsigned listOfOpenHoursRulesIndex = 0; listOfOpenHoursRulesIndex < listOfOpenHoursRulesJsonList.GetLength(); ++listOfOpenHoursRulesIndex) { listOfOpenHoursRulesJsonList[listOfOpenHoursRulesIndex].AsObject(pUSHItem.second[listOfOpenHoursRulesIndex].Jsonize()); } pUSHJsonMap.WithArray(DayOfWeekMapper::GetNameForDayOfWeek(pUSHItem.first), std::move(listOfOpenHoursRulesJsonList)); } payload.WithObject("PUSH", std::move(pUSHJsonMap)); } if(m_vOICEHasBeenSet) { JsonValue vOICEJsonMap; for(auto& vOICEItem : m_vOICE) { Aws::Utils::Array<JsonValue> listOfOpenHoursRulesJsonList(vOICEItem.second.size()); for(unsigned listOfOpenHoursRulesIndex = 0; listOfOpenHoursRulesIndex < listOfOpenHoursRulesJsonList.GetLength(); ++listOfOpenHoursRulesIndex) { listOfOpenHoursRulesJsonList[listOfOpenHoursRulesIndex].AsObject(vOICEItem.second[listOfOpenHoursRulesIndex].Jsonize()); } vOICEJsonMap.WithArray(DayOfWeekMapper::GetNameForDayOfWeek(vOICEItem.first), std::move(listOfOpenHoursRulesJsonList)); } payload.WithObject("VOICE", std::move(vOICEJsonMap)); } if(m_cUSTOMHasBeenSet) { JsonValue cUSTOMJsonMap; for(auto& cUSTOMItem : m_cUSTOM) { Aws::Utils::Array<JsonValue> listOfOpenHoursRulesJsonList(cUSTOMItem.second.size()); for(unsigned listOfOpenHoursRulesIndex = 0; listOfOpenHoursRulesIndex < listOfOpenHoursRulesJsonList.GetLength(); ++listOfOpenHoursRulesIndex) { listOfOpenHoursRulesJsonList[listOfOpenHoursRulesIndex].AsObject(cUSTOMItem.second[listOfOpenHoursRulesIndex].Jsonize()); } cUSTOMJsonMap.WithArray(DayOfWeekMapper::GetNameForDayOfWeek(cUSTOMItem.first), std::move(listOfOpenHoursRulesJsonList)); } payload.WithObject("CUSTOM", std::move(cUSTOMJsonMap)); } return payload; } } // namespace Model } // namespace Pinpoint } // namespace Aws