SearchRequestComposer.h (1094B)
1 // Copyright (c) Microsoft Corporation. 2 // Licensed under the MIT License. 3 #pragma once 4 #include <AppInstallerVersions.h> 5 #include <winget/JsonUtil.h> 6 #include <winget/RepositorySearch.h> 7 8 #include <memory> 9 #include <vector> 10 11 namespace AppInstaller::Repository::Rest::Schema 12 { 13 // Exposes functions for creating JSON REST request body from search requests. 14 struct SearchRequestComposer 15 { 16 SearchRequestComposer(const Utility::Version& schemaVersion); 17 18 SearchRequestComposer(const SearchRequestComposer&) = delete; 19 SearchRequestComposer& operator=(const SearchRequestComposer&) = delete; 20 21 SearchRequestComposer(SearchRequestComposer&&) noexcept; 22 SearchRequestComposer& operator=(SearchRequestComposer&&) noexcept; 23 24 ~SearchRequestComposer(); 25 26 // Create search request rest call body from a given SearchRequest 27 web::json::value Serialize(const AppInstaller::Repository::SearchRequest& searchRequest) const; 28 29 private: 30 struct impl; 31 std::unique_ptr<impl> m_pImpl; 32 }; 33 }