mirror of
https://github.com/google/nomulus.git
synced 2025-06-27 14:54:51 +02:00
mv com/google/domain/registry google/registry
This change renames directories in preparation for the great package rename. The repository is now in a broken state because the code itself hasn't been updated. However this should ensure that git correctly preserves history for each file.
This commit is contained in:
parent
a41677aea1
commit
5012893c1d
2396 changed files with 0 additions and 0 deletions
18
java/google/registry/braintree/BUILD
Normal file
18
java/google/registry/braintree/BUILD
Normal file
|
@ -0,0 +1,18 @@
|
|||
package(default_visibility = ["//java/com/google/domain/registry:registry_project"])
|
||||
|
||||
|
||||
java_library(
|
||||
name = "braintree",
|
||||
srcs = glob(["*.java"]),
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//java/com/google/common/base",
|
||||
"//java/com/google/domain/registry/config",
|
||||
"//java/com/google/domain/registry/keyring/api",
|
||||
"//java/com/google/domain/registry/model",
|
||||
"//third_party/java/braintree",
|
||||
"//third_party/java/dagger",
|
||||
"//third_party/java/jsr305_annotations",
|
||||
"//third_party/java/jsr330_inject",
|
||||
],
|
||||
)
|
47
java/google/registry/braintree/BraintreeModule.java
Normal file
47
java/google/registry/braintree/BraintreeModule.java
Normal file
|
@ -0,0 +1,47 @@
|
|||
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package com.google.domain.registry.braintree;
|
||||
|
||||
import com.google.domain.registry.config.ConfigModule.Config;
|
||||
import com.google.domain.registry.config.RegistryEnvironment;
|
||||
import com.google.domain.registry.keyring.api.KeyModule.Key;
|
||||
|
||||
import com.braintreegateway.BraintreeGateway;
|
||||
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/** Dagger module for Braintree Payments API. */
|
||||
@Module
|
||||
public final class BraintreeModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
static BraintreeGateway provideBraintreeGateway(
|
||||
RegistryEnvironment environment,
|
||||
@Config("braintreeMerchantId") String merchantId,
|
||||
@Config("braintreePublicKey") String publicKey,
|
||||
@Key("braintreePrivateKey") String privateKey) {
|
||||
return new BraintreeGateway(
|
||||
environment == RegistryEnvironment.PRODUCTION
|
||||
? com.braintreegateway.Environment.PRODUCTION
|
||||
: com.braintreegateway.Environment.SANDBOX,
|
||||
merchantId,
|
||||
publicKey,
|
||||
privateKey);
|
||||
}
|
||||
}
|
105
java/google/registry/braintree/BraintreeRegistrarSyncer.java
Normal file
105
java/google/registry/braintree/BraintreeRegistrarSyncer.java
Normal file
|
@ -0,0 +1,105 @@
|
|||
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package com.google.domain.registry.braintree;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.base.Verify.verify;
|
||||
|
||||
import com.google.common.base.Optional;
|
||||
import com.google.common.base.VerifyException;
|
||||
import com.google.domain.registry.model.registrar.Registrar;
|
||||
import com.google.domain.registry.model.registrar.RegistrarContact;
|
||||
|
||||
import com.braintreegateway.BraintreeGateway;
|
||||
import com.braintreegateway.Customer;
|
||||
import com.braintreegateway.CustomerRequest;
|
||||
import com.braintreegateway.Result;
|
||||
import com.braintreegateway.exceptions.NotFoundException;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/** Helper for creating Braintree customer entries for registrars. */
|
||||
public class BraintreeRegistrarSyncer {
|
||||
|
||||
private final BraintreeGateway braintree;
|
||||
|
||||
@Inject
|
||||
BraintreeRegistrarSyncer(BraintreeGateway braintreeGateway) {
|
||||
this.braintree = braintreeGateway;
|
||||
}
|
||||
|
||||
/**
|
||||
* Syncs {@code registrar} with Braintree customer entry, creating it if one doesn't exist.
|
||||
*
|
||||
* <p>The customer ID will be the same as {@link Registrar#getClientIdentifier()}.
|
||||
*
|
||||
* <p>Creating a customer object in Braintree's database is a necessary step in order to associate
|
||||
* a payment with a registrar. The transaction will fail if the customer object doesn't exist.
|
||||
*
|
||||
* @throws IllegalArgumentException if {@code registrar} is not using BRAINTREE billing
|
||||
* @throws VerifyException if the Braintree API returned a failure response
|
||||
*/
|
||||
public void sync(Registrar registrar) throws VerifyException {
|
||||
String id = registrar.getClientIdentifier();
|
||||
checkArgument(registrar.getBillingMethod() == Registrar.BillingMethod.BRAINTREE,
|
||||
"Registrar (%s) billing method (%s) is not BRAINTREE", id, registrar.getBillingMethod());
|
||||
CustomerRequest request = createRequest(registrar);
|
||||
Result<Customer> result;
|
||||
if (doesCustomerExist(id)) {
|
||||
result = braintree.customer().update(id, request);
|
||||
} else {
|
||||
result = braintree.customer().create(request);
|
||||
}
|
||||
verify(result.isSuccess(),
|
||||
"Failed to sync registrar (%s) to braintree customer: %s", id, result.getMessage());
|
||||
}
|
||||
|
||||
private CustomerRequest createRequest(Registrar registrar) {
|
||||
CustomerRequest result =
|
||||
new CustomerRequest()
|
||||
.id(registrar.getClientIdentifier())
|
||||
.customerId(registrar.getClientIdentifier())
|
||||
.company(registrar.getRegistrarName());
|
||||
Optional<RegistrarContact> contact = getBillingContact(registrar);
|
||||
if (contact.isPresent()) {
|
||||
result.email(contact.get().getEmailAddress());
|
||||
result.phone(contact.get().getPhoneNumber());
|
||||
result.fax(contact.get().getFaxNumber());
|
||||
} else {
|
||||
result.email(registrar.getEmailAddress());
|
||||
result.phone(registrar.getPhoneNumber());
|
||||
result.fax(registrar.getFaxNumber());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private Optional<RegistrarContact> getBillingContact(Registrar registrar) {
|
||||
for (RegistrarContact contact : registrar.getContacts()) {
|
||||
if (contact.getTypes().contains(RegistrarContact.Type.BILLING)) {
|
||||
return Optional.of(contact);
|
||||
}
|
||||
}
|
||||
return Optional.absent();
|
||||
}
|
||||
|
||||
private boolean doesCustomerExist(String id) {
|
||||
try {
|
||||
braintree.customer().find(id);
|
||||
return true;
|
||||
} catch (NotFoundException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
17
java/google/registry/braintree/package-info.java
Normal file
17
java/google/registry/braintree/package-info.java
Normal file
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
/** Braintree payment gateway utilities. */
|
||||
@javax.annotation.ParametersAreNonnullByDefault
|
||||
package com.google.domain.registry.braintree;
|
Loading…
Add table
Add a link
Reference in a new issue