Skip to content

Commit

Permalink
Move endpoint_authority to constructor
Browse files Browse the repository at this point in the history
  • Loading branch information
bajajneha27 committed May 23, 2024
1 parent 7e09ce2 commit 206e5eb
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 19 deletions.
4 changes: 2 additions & 2 deletions google/cloud/storage/client.h
Original file line number Diff line number Diff line change
Expand Up @@ -3083,9 +3083,9 @@ class Client {
PolicyDocumentV4 document, Options&&... options) {
google::cloud::internal::OptionsSpan const span(
SpanOptions(std::forward<Options>(options)...));
internal::PolicyDocumentV4Request request(std::move(document));
internal::PolicyDocumentV4Request request(std::move(document),
EndpointAuthority());
request.set_multiple_options(std::forward<Options>(options)...);
request.SetEndpointAuthority(EndpointAuthority());
return SignPolicyDocumentV4(std::move(request));
}

Expand Down
8 changes: 2 additions & 6 deletions google/cloud/storage/internal/policy_document_request.cc
Original file line number Diff line number Diff line change
Expand Up @@ -342,12 +342,8 @@ std::map<std::string, std::string> PolicyDocumentV4Request::RequiredFormFields()
}

std::ostream& operator<<(std::ostream& os, PolicyDocumentV4Request const& r) {
using nlohmann::json;
json j;
j["endpoint_authority"] = r.endpoint_authority();

return os << "PolicyDocumentRequest={" << std::move(j.dump()) << ","
<< r.StringToSign() << "}";
return os << "PolicyDocumentRequest={endpoint_authority="
<< r.endpoint_authority() << "," << r.StringToSign() << "}";
}

} // namespace internal
Expand Down
13 changes: 8 additions & 5 deletions google/cloud/storage/internal/policy_document_request.h
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,14 @@ std::ostream& operator<<(std::ostream& os, PolicyDocumentRequest const& r);
class PolicyDocumentV4Request {
public:
PolicyDocumentV4Request()
: scheme_("https"), endpoint_authority_("storage.googleapis.com") {}
: PolicyDocumentV4Request("storage.googleapis.com") {}
explicit PolicyDocumentV4Request(std::string endpoint_authority)
: scheme_("https"), endpoint_authority_(std::move(endpoint_authority)) {}
PolicyDocumentV4Request(PolicyDocumentV4 document,
std::string endpoint_authority)
: PolicyDocumentV4Request(std::move(endpoint_authority)) {
document_ = std::move(document);
}
explicit PolicyDocumentV4Request(PolicyDocumentV4 document)
: PolicyDocumentV4Request() {
document_ = std::move(document);
Expand Down Expand Up @@ -179,10 +186,6 @@ class PolicyDocumentV4Request {
signing_email_ = std::move(signing_email);
}

void SetEndpointAuthority(std::string endpoint_authority) {
endpoint_authority_ = std::move(endpoint_authority);
}

std::string Credentials() const;

std::map<std::string, std::string> RequiredFormFields() const;
Expand Down
9 changes: 3 additions & 6 deletions google/cloud/storage/internal/policy_document_request_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,7 @@ TEST(PolicyDocumentV4Request, Printing) {
std::stringstream stream;
stream << req;
EXPECT_EQ(
"PolicyDocumentRequest={{\"endpoint_authority\":\"storage.googleapis."
"com\"},"
"PolicyDocumentRequest={endpoint_authority=storage.googleapis.com,,"
"{\"conditions\":[{\"bucket\":\"test-bucket\"},{"
"\"key\":\"test-object\"},{\"x-goog-date\":\"20100616T111111Z\"},{\"x-"
"goog-credential\":\"/20100616/auto/storage/"
Expand Down Expand Up @@ -159,9 +158,8 @@ TEST(PolicyDocumentV4Request, RequiredFormFields) {
TEST(PolicyDocumentV4Request, Url) {
PolicyDocumentV4 doc;
doc.bucket = "test-bucket";
PolicyDocumentV4Request request(doc);
auto const custom_endpoint_authority = std::string{"storage.mydomain.com"};
request.SetEndpointAuthority(custom_endpoint_authority);
PolicyDocumentV4Request request(doc, custom_endpoint_authority);
EXPECT_THAT(request.Url(),
StartsWith("https://" + custom_endpoint_authority));
}
Expand All @@ -170,9 +168,8 @@ TEST(PolicyDocumentV4Request, UrlWithVirtualHostName) {
PolicyDocumentV4 doc;
doc.bucket = "test-bucket";
auto const custom_endpoint_authority = std::string{"storage.mydomain.com"};
PolicyDocumentV4Request request(doc);
PolicyDocumentV4Request request(doc, custom_endpoint_authority);
request.SetOption(VirtualHostname(true));
request.SetEndpointAuthority(custom_endpoint_authority);

auto const expected_url = std::string{"https://" + doc.bucket + "." +
custom_endpoint_authority + "/"};
Expand Down

0 comments on commit 206e5eb

Please sign in to comment.