BTThreeDSecurePostalAddress.m 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. #import "BTThreeDSecurePostalAddress_Internal.h"
  2. @implementation BTThreeDSecurePostalAddress
  3. // Property names follow the `Braintree_Address` convention as documented at:
  4. // https://developers.braintreepayments.com/ios+php/reference/response/address
  5. - (void)setFirstName:(NSString *)firstName {
  6. _givenName = firstName;
  7. }
  8. - (NSString *)firstName {
  9. return _givenName;
  10. }
  11. - (void)setLastName:(NSString *)lastName {
  12. _surname = lastName;
  13. }
  14. - (NSString *)lastName {
  15. return _surname;
  16. }
  17. - (id)copyWithZone:(__unused NSZone *)zone {
  18. BTThreeDSecurePostalAddress *address = [[BTThreeDSecurePostalAddress alloc] init];
  19. address.givenName = self.givenName;
  20. address.surname = self.surname;
  21. address.streetAddress = self.streetAddress;
  22. address.extendedAddress = self.extendedAddress;
  23. address.line3 = self.line3;
  24. address.locality = self.locality;
  25. address.region = self.region;
  26. address.postalCode = self.postalCode;
  27. address.countryCodeAlpha2 = self.countryCodeAlpha2;
  28. address.phoneNumber = self.phoneNumber;
  29. return address;
  30. }
  31. - (NSString *)prependPrefix:(NSString *)prefix toKey:(NSString *)key {
  32. if (prefix.length) {
  33. // Uppercase the first character in the key
  34. key = [key stringByReplacingCharactersInRange:NSMakeRange(0, 1)
  35. withString:[[key substringToIndex:1] uppercaseString]];
  36. return [NSString stringWithFormat:@"%@%@", prefix, key];
  37. }
  38. else {
  39. return key;
  40. }
  41. }
  42. - (NSDictionary *)asParametersWithPrefix:(NSString *)prefix {
  43. NSMutableDictionary *parameters = [@{} mutableCopy];
  44. if (self.givenName) {
  45. parameters[[self prependPrefix:prefix toKey:@"givenName"]] = self.givenName;
  46. }
  47. if (self.surname) {
  48. parameters[[self prependPrefix:prefix toKey:@"surname"]] = self.surname;
  49. }
  50. if (self.streetAddress) {
  51. parameters[[self prependPrefix:prefix toKey:@"line1"]] = self.streetAddress;
  52. }
  53. if (self.extendedAddress) {
  54. parameters[[self prependPrefix:prefix toKey:@"line2"]] = self.extendedAddress;
  55. }
  56. if (self.line3) {
  57. parameters[[self prependPrefix:prefix toKey:@"line3"]] = self.line3;
  58. }
  59. if (self.locality) {
  60. parameters[[self prependPrefix:prefix toKey:@"city"]] = self.locality;
  61. }
  62. if (self.region) {
  63. parameters[[self prependPrefix:prefix toKey:@"state"]] = self.region;
  64. }
  65. if (self.postalCode) {
  66. parameters[[self prependPrefix:prefix toKey:@"postalCode"]] = self.postalCode;
  67. }
  68. if (self.countryCodeAlpha2) {
  69. parameters[[self prependPrefix:prefix toKey:@"countryCode"]] = self.countryCodeAlpha2;
  70. }
  71. if (self.phoneNumber) {
  72. NSString *key = @"phoneNumber";
  73. if ([prefix isEqualToString:@"shipping"]) {
  74. key = @"phone";
  75. }
  76. parameters[[self prependPrefix:prefix toKey:key]] = self.phoneNumber;
  77. }
  78. return [parameters copy];
  79. }
  80. - (NSDictionary *)asParameters {
  81. return [self asParametersWithPrefix:@""];
  82. }
  83. - (NSString *)debugDescription {
  84. return [NSString stringWithFormat:@"<%@:%p \"%@\" %@, %@, %@, %@, %@, %@, %@, %@ %@ %@>", NSStringFromClass([self class]), self, [self description], self.givenName, self.surname, self.phoneNumber, self.streetAddress, self.extendedAddress, self.line3, self.locality, self.region, self.postalCode, self.countryCodeAlpha2];
  85. }
  86. @end