1*08777fb0SLewanczyk, Dawid /* 2*08777fb0SLewanczyk, Dawid // Copyright (c) 2018 Intel Corporation 3*08777fb0SLewanczyk, Dawid // 4*08777fb0SLewanczyk, Dawid // Licensed under the Apache License, Version 2.0 (the "License"); 5*08777fb0SLewanczyk, Dawid // you may not use this file except in compliance with the License. 6*08777fb0SLewanczyk, Dawid // You may obtain a copy of the License at 7*08777fb0SLewanczyk, Dawid // 8*08777fb0SLewanczyk, Dawid // http://www.apache.org/licenses/LICENSE-2.0 9*08777fb0SLewanczyk, Dawid // 10*08777fb0SLewanczyk, Dawid // Unless required by applicable law or agreed to in writing, software 11*08777fb0SLewanczyk, Dawid // distributed under the License is distributed on an "AS IS" BASIS, 12*08777fb0SLewanczyk, Dawid // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*08777fb0SLewanczyk, Dawid // See the License for the specific language governing permissions and 14*08777fb0SLewanczyk, Dawid // limitations under the License. 15*08777fb0SLewanczyk, Dawid */ 16*08777fb0SLewanczyk, Dawid #pragma once 17*08777fb0SLewanczyk, Dawid 18*08777fb0SLewanczyk, Dawid #include "node.hpp" 19*08777fb0SLewanczyk, Dawid #include "sensors.hpp" 20*08777fb0SLewanczyk, Dawid 21*08777fb0SLewanczyk, Dawid namespace redfish { 22*08777fb0SLewanczyk, Dawid 23*08777fb0SLewanczyk, Dawid class Thermal : public Node { 24*08777fb0SLewanczyk, Dawid public: 25*08777fb0SLewanczyk, Dawid Thermal(CrowApp& app) 26*08777fb0SLewanczyk, Dawid : Node((app), "/redfish/v1/Chassis/<str>/Thermal/", std::string()) { 27*08777fb0SLewanczyk, Dawid Node::json["@odata.type"] = "#Thermal.v1_2_0.Thermal"; 28*08777fb0SLewanczyk, Dawid Node::json["@odata.context"] = "/redfish/v1/$metadata#Thermal.Thermal"; 29*08777fb0SLewanczyk, Dawid Node::json["Id"] = "Thermal"; 30*08777fb0SLewanczyk, Dawid Node::json["Name"] = "Thermal"; 31*08777fb0SLewanczyk, Dawid 32*08777fb0SLewanczyk, Dawid entityPrivileges = {{crow::HTTPMethod::GET, {{"Login"}}}, 33*08777fb0SLewanczyk, Dawid {crow::HTTPMethod::HEAD, {{"Login"}}}, 34*08777fb0SLewanczyk, Dawid {crow::HTTPMethod::PATCH, {{"ConfigureManager"}}}, 35*08777fb0SLewanczyk, Dawid {crow::HTTPMethod::PUT, {{"ConfigureManager"}}}, 36*08777fb0SLewanczyk, Dawid {crow::HTTPMethod::DELETE, {{"ConfigureManager"}}}, 37*08777fb0SLewanczyk, Dawid {crow::HTTPMethod::POST, {{"ConfigureManager"}}}}; 38*08777fb0SLewanczyk, Dawid } 39*08777fb0SLewanczyk, Dawid 40*08777fb0SLewanczyk, Dawid private: 41*08777fb0SLewanczyk, Dawid void doGet(crow::response& res, const crow::request& req, 42*08777fb0SLewanczyk, Dawid const std::vector<std::string>& params) override { 43*08777fb0SLewanczyk, Dawid if (params.size() != 1) { 44*08777fb0SLewanczyk, Dawid res.code = static_cast<int>(HttpRespCode::INTERNAL_ERROR); 45*08777fb0SLewanczyk, Dawid res.end(); 46*08777fb0SLewanczyk, Dawid return; 47*08777fb0SLewanczyk, Dawid } 48*08777fb0SLewanczyk, Dawid const std::string& chassis_name = params[0]; 49*08777fb0SLewanczyk, Dawid 50*08777fb0SLewanczyk, Dawid res.json_value = Node::json; 51*08777fb0SLewanczyk, Dawid auto asyncResp = std::make_shared<AsyncResp>( 52*08777fb0SLewanczyk, Dawid res, chassis_name, 53*08777fb0SLewanczyk, Dawid std::initializer_list<const char*>{ 54*08777fb0SLewanczyk, Dawid "/xyz/openbmc_project/Sensors/fan", 55*08777fb0SLewanczyk, Dawid "/xyz/openbmc_project/Sensors/temperature"}); 56*08777fb0SLewanczyk, Dawid getChassisData(asyncResp); 57*08777fb0SLewanczyk, Dawid } 58*08777fb0SLewanczyk, Dawid }; 59*08777fb0SLewanczyk, Dawid 60*08777fb0SLewanczyk, Dawid } // namespace redfish 61