Commit 77890282210c6785c350c7de77219064a413fd95
Committed by
Jan
1 parent
ce79be36
Remove redundant ip parameter from Hue::requestUsername.
Showing
4 changed files
with
19 additions
and
19 deletions
hueplusplus/Hue.cpp
| @@ -79,7 +79,7 @@ Hue HueFinder::GetBridge(const HueIdentification& identification) | @@ -79,7 +79,7 @@ Hue HueFinder::GetBridge(const HueIdentification& identification) | ||
| 79 | return Hue(identification.ip, identification.port, pos->second, http_handler); | 79 | return Hue(identification.ip, identification.port, pos->second, http_handler); |
| 80 | } | 80 | } |
| 81 | Hue bridge(identification.ip, identification.port, "", http_handler); | 81 | Hue bridge(identification.ip, identification.port, "", http_handler); |
| 82 | - bridge.requestUsername(identification.ip); | 82 | + bridge.requestUsername(); |
| 83 | if (bridge.getUsername().empty()) | 83 | if (bridge.getUsername().empty()) |
| 84 | { | 84 | { |
| 85 | std::cerr << "Failed to request username for ip " << identification.ip << std::endl; | 85 | std::cerr << "Failed to request username for ip " << identification.ip << std::endl; |
| @@ -156,7 +156,7 @@ int Hue::getBridgePort() | @@ -156,7 +156,7 @@ int Hue::getBridgePort() | ||
| 156 | return port; | 156 | return port; |
| 157 | } | 157 | } |
| 158 | 158 | ||
| 159 | -std::string Hue::requestUsername(const std::string& ip) | 159 | +std::string Hue::requestUsername() |
| 160 | { | 160 | { |
| 161 | std::cout << "Please press the link Button! You've got 35 secs!\n"; // when the link | 161 | std::cout << "Please press the link Button! You've got 35 secs!\n"; // when the link |
| 162 | // button was | 162 | // button was |
| @@ -187,7 +187,6 @@ std::string Hue::requestUsername(const std::string& ip) | @@ -187,7 +187,6 @@ std::string Hue::requestUsername(const std::string& ip) | ||
| 187 | { | 187 | { |
| 188 | // [{"success":{"username": "<username>"}}] | 188 | // [{"success":{"username": "<username>"}}] |
| 189 | username = jsonUser; | 189 | username = jsonUser; |
| 190 | - this->ip = ip; | ||
| 191 | // Update commands with new username and ip | 190 | // Update commands with new username and ip |
| 192 | commands = HueCommandAPI(ip, port, username, http_handler); | 191 | commands = HueCommandAPI(ip, port, username, http_handler); |
| 193 | std::cout << "Success! Link button was pressed!\n"; | 192 | std::cout << "Success! Link button was pressed!\n"; |
hueplusplus/include/Hue.h
| @@ -98,7 +98,7 @@ public: | @@ -98,7 +98,7 @@ public: | ||
| 98 | private: | 98 | private: |
| 99 | //! \brief Parses mac address from description.xml | 99 | //! \brief Parses mac address from description.xml |
| 100 | //! | 100 | //! |
| 101 | - //! \param description Content of description.xml file as returned by GET request. | 101 | + //! \param description Content of description.xml file as returned by GET request. |
| 102 | //! \returns Content of xml element \c serialNumber if description matches a Hue bridge, otherwise an empty string. | 102 | //! \returns Content of xml element \c serialNumber if description matches a Hue bridge, otherwise an empty string. |
| 103 | static std::string ParseDescription(const std::string& description); | 103 | static std::string ParseDescription(const std::string& description); |
| 104 | 104 | ||
| @@ -115,10 +115,11 @@ class Hue | @@ -115,10 +115,11 @@ class Hue | ||
| 115 | public: | 115 | public: |
| 116 | //! \brief Constructor of Hue class | 116 | //! \brief Constructor of Hue class |
| 117 | //! | 117 | //! |
| 118 | - //! decimal notation like "192.168.2.1" \param port Port of the hue bridge | 118 | + //! \param ip IP address in dotted decimal notation like "192.168.2.1" |
| 119 | + //! \param port Port of the hue bridge | ||
| 119 | //! \param username String that specifies the username that is used to control | 120 | //! \param username String that specifies the username that is used to control |
| 120 | - //! the bridge. This needs to be acquired in \ref requestUsername \param handler | ||
| 121 | - //! HttpHandler of type \ref IHttpHandler for communication with the bridge | 121 | + //! the bridge. This needs to be acquired in \ref requestUsername |
| 122 | + //! \param handler HttpHandler for communication with the bridge | ||
| 122 | Hue(const std::string& ip, const int port, const std::string& username, | 123 | Hue(const std::string& ip, const int port, const std::string& username, |
| 123 | std::shared_ptr<const IHttpHandler> handler); | 124 | std::shared_ptr<const IHttpHandler> handler); |
| 124 | 125 | ||
| @@ -134,17 +135,16 @@ public: | @@ -134,17 +135,16 @@ public: | ||
| 134 | 135 | ||
| 135 | //! \brief Send a username request to the Hue bridge. | 136 | //! \brief Send a username request to the Hue bridge. |
| 136 | //! | 137 | //! |
| 137 | - //! Blocks for about 30 seconds and 5 seconds to prepare. | ||
| 138 | - //! It automatically sets the \ref username variable according to the username received and returns the username received. | ||
| 139 | - //! This function should only be called once to acquire a username to control the bridge and the username | 138 | + //! Blocks for about 30 seconds and 5 seconds to prepare. |
| 139 | + //! It automatically sets the \ref username variable according to the username received and returns the username | ||
| 140 | + //! received. This function should only be called once to acquire a username to control the bridge and the username | ||
| 140 | //! should be saved for future use. | 141 | //! should be saved for future use. |
| 141 | - //! \param ip String that specifies the ip (in dotted decimal notation like "192.168.2.1") the request is send to | ||
| 142 | //! \return username for API usage | 142 | //! \return username for API usage |
| 143 | //! \throws std::system_error when system or socket operations fail | 143 | //! \throws std::system_error when system or socket operations fail |
| 144 | //! \throws HueException when response contained no body | 144 | //! \throws HueException when response contained no body |
| 145 | //! \throws HueAPIResponseException when response contains an error except link button not pressed. | 145 | //! \throws HueAPIResponseException when response contains an error except link button not pressed. |
| 146 | //! \throws nlohmann::json::parse_error when response could not be parsed | 146 | //! \throws nlohmann::json::parse_error when response could not be parsed |
| 147 | - std::string requestUsername(const std::string& ip); | 147 | + std::string requestUsername(); |
| 148 | 148 | ||
| 149 | //! \brief Function that returns the \ref username | 149 | //! \brief Function that returns the \ref username |
| 150 | //! | 150 | //! |
| @@ -174,8 +174,8 @@ public: | @@ -174,8 +174,8 @@ public: | ||
| 174 | 174 | ||
| 175 | //! \brief Function to remove a light from the bridge | 175 | //! \brief Function to remove a light from the bridge |
| 176 | //! | 176 | //! |
| 177 | - //! \attention Any use of the light after it was successfully removed results in undefined behavior | ||
| 178 | - //! \param id Id of the light to remove | 177 | + //! \attention Any use of the light after it was successfully removed results in undefined behavior |
| 178 | + //! \param id Id of the light to remove | ||
| 179 | //! \return true on success | 179 | //! \return true on success |
| 180 | //! \throws std::system_error when system or socket operations fail | 180 | //! \throws std::system_error when system or socket operations fail |
| 181 | //! \throws HueException when response contains no body | 181 | //! \throws HueException when response contains no body |
| @@ -245,7 +245,7 @@ public: | @@ -245,7 +245,7 @@ public: | ||
| 245 | { | 245 | { |
| 246 | http_handler = std::move(handler); | 246 | http_handler = std::move(handler); |
| 247 | commands = HueCommandAPI(ip, port, username, http_handler); | 247 | commands = HueCommandAPI(ip, port, username, http_handler); |
| 248 | - }; | 248 | + } |
| 249 | 249 | ||
| 250 | private: | 250 | private: |
| 251 | //! \brief Function that refreshes the local \ref state of the Hue bridge | 251 | //! \brief Function that refreshes the local \ref state of the Hue bridge |
hueplusplus/include/HueCommandAPI.h
| @@ -38,10 +38,11 @@ public: | @@ -38,10 +38,11 @@ public: | ||
| 38 | //! \brief Construct from ip, username and HttpHandler | 38 | //! \brief Construct from ip, username and HttpHandler |
| 39 | //! | 39 | //! |
| 40 | //! \param ip ip address of the Hue bridge in dotted decimal notation like "192.168.2.1" | 40 | //! \param ip ip address of the Hue bridge in dotted decimal notation like "192.168.2.1" |
| 41 | - //! \param username username that is used to control the bridge | ||
| 42 | //! \param port of the hue bridge | 41 | //! \param port of the hue bridge |
| 42 | + //! \param username username that is used to control the bridge | ||
| 43 | //! \param handler HttpHandler for communication with the bridge | 43 | //! \param handler HttpHandler for communication with the bridge |
| 44 | - HueCommandAPI(const std::string& ip, const std::string& username, std::shared_ptr<const IHttpHandler> httpHandler); | 44 | + HueCommandAPI( |
| 45 | + const std::string& ip, int port, const std::string& username, std::shared_ptr<const IHttpHandler> httpHandler); | ||
| 45 | 46 | ||
| 46 | //! \brief Copy construct from other HueCommandAPI | 47 | //! \brief Copy construct from other HueCommandAPI |
| 47 | //! \note All copies refer to the same timeout data, so even calls from different objects will be delayed | 48 | //! \note All copies refer to the same timeout data, so even calls from different objects will be delayed |
hueplusplus/test/test_Hue.cpp
| @@ -193,7 +193,7 @@ TEST(Hue, requestUsername) | @@ -193,7 +193,7 @@ TEST(Hue, requestUsername) | ||
| 193 | 193 | ||
| 194 | Hue test_bridge(getBridgeIp(), getBridgePort(), "", handler); | 194 | Hue test_bridge(getBridgeIp(), getBridgePort(), "", handler); |
| 195 | 195 | ||
| 196 | - test_bridge.requestUsername(test_bridge.getBridgeIP()); | 196 | + test_bridge.requestUsername(); |
| 197 | EXPECT_EQ(test_bridge.getUsername(), "") << "Bridge username not matching"; | 197 | EXPECT_EQ(test_bridge.getUsername(), "") << "Bridge username not matching"; |
| 198 | 198 | ||
| 199 | nlohmann::json user_ret_suc; | 199 | nlohmann::json user_ret_suc; |
| @@ -207,7 +207,7 @@ TEST(Hue, requestUsername) | @@ -207,7 +207,7 @@ TEST(Hue, requestUsername) | ||
| 207 | 207 | ||
| 208 | test_bridge = Hue(getBridgeIp(), getBridgePort(), "", handler); | 208 | test_bridge = Hue(getBridgeIp(), getBridgePort(), "", handler); |
| 209 | 209 | ||
| 210 | - test_bridge.requestUsername(test_bridge.getBridgeIP()); | 210 | + test_bridge.requestUsername(); |
| 211 | 211 | ||
| 212 | EXPECT_EQ(test_bridge.getBridgeIP(), getBridgeIp()) << "Bridge IP not matching"; | 212 | EXPECT_EQ(test_bridge.getBridgeIP(), getBridgeIp()) << "Bridge IP not matching"; |
| 213 | EXPECT_EQ(test_bridge.getUsername(), getBridgeUsername()) << "Bridge username not matching"; | 213 | EXPECT_EQ(test_bridge.getUsername(), getBridgeUsername()) << "Bridge username not matching"; |