use of com.google.api.services.actions_fulfillment.v2.model.UserInfo in project alfresco-repository by Alfresco.
the class EventConsolidator method buildNodeResourceBeforeDelta.
protected NodeResource buildNodeResourceBeforeDelta(NodeResource after) {
if (after == null) {
return null;
}
Builder builder = NodeResource.builder();
Map<QName, Serializable> changedPropsBefore = getBeforeMapChanges(propertiesBefore, propertiesAfter);
if (!changedPropsBefore.isEmpty()) {
// Set only the changed properties
Map<String, Serializable> mappedProps = helper.mapToNodeProperties(changedPropsBefore);
if (!mappedProps.isEmpty()) {
builder.setProperties(mappedProps);
resourceBeforeAllFieldsNull = false;
}
String name = (String) changedPropsBefore.get(ContentModel.PROP_NAME);
if (name != null) {
builder.setName(name);
resourceBeforeAllFieldsNull = false;
}
ContentInfo contentInfo = helper.getContentInfo(changedPropsBefore);
if (contentInfo != null) {
builder.setContent(contentInfo);
resourceBeforeAllFieldsNull = false;
}
UserInfo modifier = helper.getUserInfo((String) changedPropsBefore.get(ContentModel.PROP_MODIFIER));
if (modifier != null) {
builder.setModifiedByUser(modifier);
resourceBeforeAllFieldsNull = false;
}
ZonedDateTime modifiedAt = helper.getZonedDateTime((Date) changedPropsBefore.get(ContentModel.PROP_MODIFIED));
if (modifiedAt != null) {
builder.setModifiedAt(modifiedAt);
resourceBeforeAllFieldsNull = false;
}
}
Set<String> aspectsBefore = getMappedAspectsBefore(after.getAspectNames());
if (!aspectsBefore.isEmpty()) {
builder.setAspectNames(aspectsBefore);
resourceBeforeAllFieldsNull = false;
}
if (primaryHierarchyBefore != null && !primaryHierarchyBefore.isEmpty()) {
builder.setPrimaryHierarchy(primaryHierarchyBefore);
resourceBeforeAllFieldsNull = false;
}
if (nodeTypeBefore != null) {
builder.setNodeType(helper.getQNamePrefixString(nodeTypeBefore));
resourceBeforeAllFieldsNull = false;
}
return builder.build();
}
use of com.google.api.services.actions_fulfillment.v2.model.UserInfo in project alfresco-repository by Alfresco.
the class NodeResourceHelper method getUserInfo.
private UserInfo getUserInfo(String userName, Map<String, UserInfo> mapUserCache) {
UserInfo userInfo = mapUserCache.get(userName);
if (userInfo == null) {
userInfo = getUserInfo(userName);
mapUserCache.put(userName, userInfo);
}
return userInfo;
}
use of com.google.api.services.actions_fulfillment.v2.model.UserInfo in project isaac-api by isaacphysics.
the class GoogleAuthenticator method getUserInfo.
@Override
public synchronized UserFromAuthProvider getUserInfo(final String internalProviderReference) throws NoUserException, AuthenticatorSecurityException {
Credential credentials = credentialStore.getIfPresent(internalProviderReference);
if (verifyAccessTokenIsValid(credentials)) {
log.debug("Successful Verification of access token with provider.");
} else {
log.error("Unable to verify access token - it could be an indication of fraud.");
throw new AuthenticatorSecurityException("Access token is invalid - the client id returned by the identity provider does not match ours.");
}
Oauth2 userInfoService = new Oauth2.Builder(new NetHttpTransport(), new JacksonFactory(), credentials).setApplicationName(Constants.APPLICATION_NAME).build();
Userinfo userInfo = null;
try {
userInfo = userInfoService.userinfo().get().execute();
log.debug("Retrieved User info from google: " + userInfo.toPrettyString());
} catch (IOException e) {
log.error("An IO error occurred while trying to retrieve user information: " + e);
}
if (userInfo != null && userInfo.getId() != null) {
EmailVerificationStatus emailStatus = userInfo.isVerifiedEmail() ? EmailVerificationStatus.VERIFIED : EmailVerificationStatus.NOT_VERIFIED;
String email = userInfo.getEmail();
if (null == email) {
email = userInfo.getId() + "-google";
emailStatus = EmailVerificationStatus.DELIVERY_FAILED;
log.warn("No email address provided by Google! Using (" + email + ") instead");
}
return new UserFromAuthProvider(userInfo.getId(), userInfo.getGivenName(), userInfo.getFamilyName(), email, emailStatus, null, null, null);
} else {
throw new NoUserException("No user could be created from provider details!");
}
}
use of com.google.api.services.actions_fulfillment.v2.model.UserInfo in project dialogflow-transactions-java by actions-on-google.
the class TransactionsApp method transactionDecision.
@ForIntent("Transaction Decision")
public ActionResponse transactionDecision(ActionRequest request) {
LOGGER.info("Checking Transaction Decision.");
Map<String, Object> conversationData = request.getConversationData();
String orderId = generateRandomOrderId();
conversationData.put("UNIQUE_ORDER_ID", orderId);
// Build the Order
// Transaction Merchant
MerchantV3 transactionMerchant = new MerchantV3().setId("http://www.example.com").setName("Example Merchant");
// Line Items
LineItemV3 firstItem = new LineItemV3().setId("memoirs_1").setName("My Memoirs").setPriceAttributes(Arrays.asList(new PriceAttribute().setType("REGULAR").setName("Item Price").setState("ACTUAL").setAmount(new MoneyV3().setCurrencyCode("USD").setAmountInMicros(3990000L)).setTaxIncluded(true), new PriceAttribute().setType("TOTAL").setName("Total Price").setState("ACTUAL").setAmount(new MoneyV3().setCurrencyCode("USD").setAmountInMicros(3990000L)).setTaxIncluded(true))).setNotes(Collections.singletonList("Note from the author.")).setPurchase(new PurchaseItemExtension().setQuantity(1));
LineItemV3 secondItem = new LineItemV3().setId("memoirs_2").setName("Memoirs of a person").setPriceAttributes(Arrays.asList(new PriceAttribute().setType("REGULAR").setName("Item Price").setState("ACTUAL").setAmount(new MoneyV3().setCurrencyCode("USD").setAmountInMicros(5990000L)).setTaxIncluded(true), new PriceAttribute().setType("TOTAL").setName("Total Price").setState("ACTUAL").setAmount(new MoneyV3().setCurrencyCode("USD").setAmountInMicros(5990000L)).setTaxIncluded(true))).setNotes(Collections.singletonList("Special introduction by author.")).setPurchase(new PurchaseItemExtension().setQuantity(1));
LineItemV3 thirdItem = new LineItemV3().setId("memoirs_3").setName("Their memoirs").setPriceAttributes(Arrays.asList(new PriceAttribute().setType("REGULAR").setName("Item Price").setState("ACTUAL").setAmount(new MoneyV3().setCurrencyCode("USD").setAmountInMicros(15750000L)).setTaxIncluded(true), new PriceAttribute().setType("TOTAL").setName("Total Price").setState("ACTUAL").setAmount(new MoneyV3().setCurrencyCode("USD").setAmountInMicros(15750000L)).setTaxIncluded(true))).setPurchase(new PurchaseItemExtension().setQuantity(1).setItemOptions(Collections.singletonList(new PurchaseItemExtensionItemOption().setId("memoirs_epilogue").setName("Special memoir epilogue").setPrices(Arrays.asList(new PriceAttribute().setType("REGULAR").setName("Item Price").setState("ACTUAL").setAmount(new MoneyV3().setCurrencyCode("USD").setAmountInMicros(3990000L)).setTaxIncluded(true), new PriceAttribute().setType("TOTAL").setName("Total Price").setState("ACTUAL").setAmount(new MoneyV3().setCurrencyCode("USD").setAmountInMicros(3990000L)).setTaxIncluded(true))))));
LineItemV3 fourthItem = new LineItemV3().setId("memoirs_4").setName("Our memoirs").setPriceAttributes(Arrays.asList(new PriceAttribute().setType("REGULAR").setName("Item Price").setState("ACTUAL").setAmount(new MoneyV3().setCurrencyCode("USD").setAmountInMicros(6490000L)).setTaxIncluded(true), new PriceAttribute().setType("TOTAL").setName("Total Price").setState("ACTUAL").setAmount(new MoneyV3().setCurrencyCode("USD").setAmountInMicros(6490000L)).setTaxIncluded(true))).setNotes(Collections.singletonList("Special introduction by author.")).setPurchase(new PurchaseItemExtension().setQuantity(1));
// Order Contents
OrderContents contents = new OrderContents().setLineItems(Arrays.asList(firstItem, secondItem, thirdItem, fourthItem));
// User Info
UserInfo buyerInfo = new UserInfo().setEmail("janedoe@gmail.com").setFirstName("Jane").setLastName("Doe").setDisplayName("Jane Doe");
// Price Attributes
PriceAttribute subTotal = new PriceAttribute().setType("SUBTOTAL").setName("Subtotal").setState("ESTIMATE").setAmount(new MoneyV3().setCurrencyCode("USD").setAmountInMicros(32220000L)).setTaxIncluded(true);
PriceAttribute deliveryFee = new PriceAttribute().setType("DELIVERY").setName("Delivery").setState("ACTUAL").setAmount(new MoneyV3().setCurrencyCode("USD").setAmountInMicros(2000000L)).setTaxIncluded(true);
PriceAttribute tax = new PriceAttribute().setType("TAX").setName("Tax").setState("ESTIMATE").setAmount(new MoneyV3().setCurrencyCode("USD").setAmountInMicros(2780000L)).setTaxIncluded(true);
PriceAttribute totalPrice = new PriceAttribute().setType("TOTAL").setName("Total Price").setState("ESTIMATE").setAmount(new MoneyV3().setCurrencyCode("USD").setAmountInMicros(37000000L)).setTaxIncluded(true);
// Follow up actions
Action viewDetails = new Action().setType("VIEW_DETAILS").setTitle("View details").setOpenUrlAction(new OpenUrlAction().setUrl("https://example.com"));
Action call = new Action().setType("CALL").setTitle("Call us").setOpenUrlAction(new OpenUrlAction().setUrl("tel:+16501112222"));
Action email = new Action().setType("EMAIL").setTitle("Email us").setOpenUrlAction(new OpenUrlAction().setUrl("mailto:person@example.com"));
// Terms of service and order note
String termsOfServiceUrl = "https://example.com";
String orderNote = "The Memoir collection";
Location location = GSON_BUILDER.create().fromJson((String) conversationData.get("location"), Location.class);
// Purchase Order Extension
PurchaseOrderExtension purchaseOrderExtension = new PurchaseOrderExtension().setStatus("CREATED").setUserVisibleStatusLabel("CREATED").setType("RETAIL").setReturnsInfo(new PurchaseReturnsInfo().setIsReturnable(false).setDaysToReturn(1).setPolicyUrl("https://example.com")).setFulfillmentInfo(new PurchaseFulfillmentInfo().setId("FULFILLMENT_SERVICE_ID").setFulfillmentType("DELIVERY").setExpectedFulfillmentTime(new TimeV3().setTimeIso8601("2025-09-25T18:00:00.877Z")).setLocation(location).setPrice(new PriceAttribute().setType("REGULAR").setName("Delivery price").setState("ACTUAL").setAmount(new MoneyV3().setCurrencyCode("USD").setAmountInMicros(2000000L)).setTaxIncluded(true)).setFulfillmentContact(new UserInfo().setEmail("johnjohnson@gmail.com").setFirstName("John").setLastName("Johnson").setDisplayName("John Johnson"))).setPurchaseLocationType("ONLINE_PURCHASE");
String now = Instant.now().toString();
OrderV3 order = new OrderV3().setCreateTime(now).setLastUpdateTime(now).setMerchantOrderId(orderId).setUserVisibleOrderId(orderId).setTransactionMerchant(transactionMerchant).setContents(contents).setBuyerInfo(buyerInfo).setPriceAttributes(Arrays.asList(subTotal, deliveryFee, tax, totalPrice)).setFollowUpActions(Arrays.asList(viewDetails, call, email)).setTermsOfServiceUrl(termsOfServiceUrl).setNote(orderNote).setPurchase(purchaseOrderExtension);
// Create presentation options
PresentationOptionsV3 presentationOptions = new PresentationOptionsV3().setActionDisplayName("PLACE_ORDER");
// Create order options
OrderOptionsV3 orderOptions = new OrderOptionsV3().setUserInfoOptions(new UserInfoOptions().setUserInfoProperties(Collections.singletonList("EMAIL")));
// Create payment parameters
PaymentParameters paymentParameters = new PaymentParameters();
if (request.getContext("google_payment") != null) {
JSONObject merchantInfo = new JSONObject();
merchantInfo.put("merchantName", "Example Merchant");
JSONObject facilitationSpec = new JSONObject();
facilitationSpec.put("apiVersion", 2);
facilitationSpec.put("apiVersionMinor", 0);
facilitationSpec.put("merchantInfo", merchantInfo);
JSONObject allowedPaymentMethod = new JSONObject();
allowedPaymentMethod.put("type", "CARD");
JSONArray allowedAuthMethods = new JSONArray();
allowedAuthMethods.addAll(Arrays.asList("PAN_ONLY", "CRYPTOGRAM_3DS"));
JSONArray allowedCardNetworks = new JSONArray();
allowedCardNetworks.addAll(Arrays.asList("AMEX", "DISCOVER", "JCB", "MASTERCARD", "VISA"));
JSONObject allowedPaymentMethodParameters = new JSONObject();
allowedPaymentMethodParameters.put("allowedAuthMethods", allowedAuthMethods);
allowedPaymentMethodParameters.put("allowedCardNetworks", allowedCardNetworks);
allowedPaymentMethod.put("parameters", allowedPaymentMethodParameters);
JSONObject tokenizationSpecificationParameters = new JSONObject();
tokenizationSpecificationParameters.put("gateway", "example");
tokenizationSpecificationParameters.put("gatewayMerchantId", "exampleGatewayMerchantId");
JSONObject tokenizationSpecification = new JSONObject();
tokenizationSpecification.put("type", "PAYMENT_GATEWAY");
tokenizationSpecification.put("parameters", tokenizationSpecificationParameters);
allowedPaymentMethod.put("tokenizationSpecification", tokenizationSpecification);
JSONArray allowedPaymentMethods = new JSONArray();
allowedPaymentMethods.add(allowedPaymentMethod);
facilitationSpec.put("allowedPaymentMethods", allowedPaymentMethods);
JSONObject transactionInfo = new JSONObject();
transactionInfo.put("totalPriceStatus", "FINAL");
transactionInfo.put("totalPrice", "37.00");
transactionInfo.put("currencyCode", "USD");
facilitationSpec.put("transactionInfo", transactionInfo);
GooglePaymentOption googlePaymentOption = new GooglePaymentOption().setFacilitationSpec(facilitationSpec.toJSONString());
paymentParameters.setGooglePaymentOption(googlePaymentOption);
} else {
MerchantPaymentMethod merchantPaymentMethod = new MerchantPaymentMethod().setPaymentMethodDisplayInfo(new PaymentMethodDisplayInfo().setPaymentMethodDisplayName("VISA **** 1234").setPaymentType("PAYMENT_CARD")).setPaymentMethodGroup("Payment method group").setPaymentMethodId("12345678").setPaymentMethodStatus(new PaymentMethodStatus().setStatus("STATUS_OK").setStatusMessage("Status message"));
MerchantPaymentOption merchantPaymentOption = new MerchantPaymentOption().setDefaultMerchantPaymentMethodId("12345678").setManagePaymentMethodUrl("https://example.com/managePayment").setMerchantPaymentMethod(Collections.singletonList(merchantPaymentMethod));
paymentParameters.setMerchantPaymentOption(merchantPaymentOption);
}
return getResponseBuilder(request).add(new TransactionDecision().setOrder(order).setOrderOptions(orderOptions).setPresentationOptions(presentationOptions).setPaymentParameters(paymentParameters)).build();
}
Aggregations