blob: cc740e8223cc1714aa87d20553c67225c19b4647 [file] [log] [blame]
// Copyright 2015 The Weave Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/privet/device_ui_kind.h"
#include <unordered_map>
#include <base/logging.h>
namespace weave {
namespace privet {
std::string GetDeviceUiKind(const std::string& manifest_id) {
// Map of device short id to ui device kind
static const std::unordered_map<std::string, std::string> device_kind_map = {
// clang-format off
{"AC", "accessPoint"},
{"AK", "aggregator"},
{"AM", "camera"},
{"AB", "developmentBoard"},
{"AH", "acHeating"},
{"AI", "light"},
{"AO", "lock"},
{"AE", "printer"},
{"AF", "scanner"},
{"AD", "speaker"},
{"AL", "storage"},
{"AJ", "toy"},
{"AA", "vendor"},
{"AN", "video"},
// clang-format on
CHECK_EQ(5u, manifest_id.size());
std::string short_id = manifest_id.substr(0, 2);
auto iter = device_kind_map.find(short_id);
if (iter != device_kind_map.end())
return iter->second;
LOG(FATAL) << "Invalid model id: " << manifest_id;
return std::string();
} // namespace privet
} // namespace weave