blob: 62f765acc8d7c018906fed51f3688004f6bbf9ca [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/modules/payments/payment_address.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_object_builder.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
namespace blink {
PaymentAddress::PaymentAddress(
payments::mojom::blink::PaymentAddressPtr address)
: country_(address->country),
address_line_(address->address_line),
region_(address->region),
city_(address->city),
dependent_locality_(address->dependent_locality),
postal_code_(address->postal_code),
sorting_code_(address->sorting_code),
language_code_(address->language_code),
organization_(address->organization),
recipient_(address->recipient),
phone_(address->phone) {
if (!language_code_.IsEmpty() && !address->script_code.IsEmpty()) {
StringBuilder builder;
builder.Append(language_code_);
builder.Append('-');
builder.Append(address->script_code);
language_code_ = builder.ToString();
}
}
PaymentAddress::~PaymentAddress() = default;
ScriptValue PaymentAddress::toJSONForBinding(ScriptState* script_state) const {
V8ObjectBuilder result(script_state);
result.AddString("country", country());
result.Add("addressLine", addressLine());
result.AddString("region", region());
result.AddString("city", city());
result.AddString("dependentLocality", dependentLocality());
result.AddString("postalCode", postalCode());
result.AddString("sortingCode", sortingCode());
result.AddString("languageCode", languageCode());
result.AddString("organization", organization());
result.AddString("recipient", recipient());
result.AddString("phone", phone());
return result.GetScriptValue();
}
} // namespace blink