|
14 | 14 |
|
15 | 15 | #include <assert.h>
|
16 | 16 |
|
| 17 | +#include <cstddef> |
17 | 18 | #include <map>
|
18 | 19 | #include <string>
|
19 | 20 |
|
20 |
| -#include "dynamic_links/src/include/firebase/dynamic_links.h" |
21 |
| -#include "dynamic_links/src/include/firebase/dynamic_links/components.h" |
22 |
| - |
23 | 21 | #include "app/src/assert.h"
|
24 | 22 | #include "app/src/include/firebase/variant.h"
|
25 | 23 | #include "app/src/include/firebase/version.h"
|
26 | 24 | #include "app/src/reference_counted_future_impl.h"
|
27 | 25 | #include "dynamic_links/src/common.h"
|
| 26 | +#include "dynamic_links/src/include/firebase/dynamic_links.h" |
| 27 | +#include "dynamic_links/src/include/firebase/dynamic_links/components.h" |
28 | 28 |
|
29 | 29 | namespace firebase {
|
30 | 30 | namespace dynamic_links {
|
@@ -96,10 +96,15 @@ std::string QueryStringFromMap(
|
96 | 96 | static GeneratedDynamicLink LongLinkFromComponents(
|
97 | 97 | const DynamicLinkComponents& components) {
|
98 | 98 | GeneratedDynamicLink generated_link;
|
99 |
| - if (components.link == nullptr || components.dynamic_link_domain == nullptr || |
100 |
| - strlen(components.link) == 0 || |
101 |
| - strlen(components.dynamic_link_domain) == 0) { |
102 |
| - generated_link.error = "No domain or target link specified."; |
| 99 | + if (components.link == nullptr || strlen(components.link) == 0) { |
| 100 | + generated_link.error = "No target link specified."; |
| 101 | + return generated_link; |
| 102 | + } |
| 103 | + if ((components.dynamic_link_domain == nullptr || |
| 104 | + strlen(components.dynamic_link_domain) == 0) && |
| 105 | + (components.domain_uri_prefix == nullptr || |
| 106 | + strlen(components.domain_uri_prefix) == 0)) { |
| 107 | + generated_link.error = "No domain specified."; |
103 | 108 | return generated_link;
|
104 | 109 | }
|
105 | 110 | std::map<std::string, std::string> query_parameters;
|
@@ -170,9 +175,11 @@ static GeneratedDynamicLink LongLinkFromComponents(
|
170 | 175 | params->image_url);
|
171 | 176 | }
|
172 | 177 | }
|
173 |
| - generated_link.url = std::string("https://") + |
174 |
| - components.dynamic_link_domain + "/" + |
175 |
| - QueryStringFromMap(query_parameters); |
| 178 | + std::string domain = |
| 179 | + components.domain_uri_prefix != nullptr |
| 180 | + ? components.domain_uri_prefix |
| 181 | + : std::string("https://") + components.dynamic_link_domain; |
| 182 | + generated_link.url = domain + "/" + QueryStringFromMap(query_parameters); |
176 | 183 | return generated_link;
|
177 | 184 | }
|
178 | 185 |
|
|
0 commit comments