virtuous 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/test.yml +26 -0
  3. data/.gitignore +5 -0
  4. data/.reek.yml +36 -0
  5. data/.rubocop.yml +87 -0
  6. data/.ruby-version +1 -0
  7. data/.yardopts +1 -0
  8. data/CHANGELOG.md +18 -0
  9. data/Gemfile +17 -0
  10. data/LICENSE +21 -0
  11. data/README.md +54 -0
  12. data/Rakefile +24 -0
  13. data/lib/virtuous/client/contact.rb +220 -0
  14. data/lib/virtuous/client/contact_address.rb +78 -0
  15. data/lib/virtuous/client/gift.rb +394 -0
  16. data/lib/virtuous/client/gift_designation.rb +59 -0
  17. data/lib/virtuous/client/individual.rb +125 -0
  18. data/lib/virtuous/client/recurring_gift.rb +86 -0
  19. data/lib/virtuous/client.rb +272 -0
  20. data/lib/virtuous/error.rb +54 -0
  21. data/lib/virtuous/helpers/hash_helper.rb +28 -0
  22. data/lib/virtuous/helpers/string_helper.rb +31 -0
  23. data/lib/virtuous/parse_oj.rb +24 -0
  24. data/lib/virtuous/version.rb +5 -0
  25. data/lib/virtuous.rb +12 -0
  26. data/logo/virtuous.svg +1 -0
  27. data/spec/spec_helper.rb +25 -0
  28. data/spec/support/client_factory.rb +10 -0
  29. data/spec/support/fixtures/contact.json +112 -0
  30. data/spec/support/fixtures/contact_address.json +20 -0
  31. data/spec/support/fixtures/contact_addresses.json +42 -0
  32. data/spec/support/fixtures/contact_gifts.json +80 -0
  33. data/spec/support/fixtures/gift.json +55 -0
  34. data/spec/support/fixtures/gift_designation_query_options.json +2701 -0
  35. data/spec/support/fixtures/gift_designations.json +175 -0
  36. data/spec/support/fixtures/gifts.json +112 -0
  37. data/spec/support/fixtures/import.json +0 -0
  38. data/spec/support/fixtures/individual.json +46 -0
  39. data/spec/support/fixtures/recurring_gift.json +26 -0
  40. data/spec/support/fixtures_helper.rb +5 -0
  41. data/spec/support/virtuous_mock.rb +101 -0
  42. data/spec/virtuous/client_spec.rb +270 -0
  43. data/spec/virtuous/error_spec.rb +74 -0
  44. data/spec/virtuous/resources/contact_address_spec.rb +75 -0
  45. data/spec/virtuous/resources/contact_spec.rb +137 -0
  46. data/spec/virtuous/resources/gift_designation_spec.rb +70 -0
  47. data/spec/virtuous/resources/gift_spec.rb +249 -0
  48. data/spec/virtuous/resources/individual_spec.rb +95 -0
  49. data/spec/virtuous/resources/recurring_gift_spec.rb +67 -0
  50. data/spec/virtuous_spec.rb +7 -0
  51. data/virtuous.gemspec +25 -0
  52. metadata +121 -0
@@ -0,0 +1,80 @@
1
+ {
2
+ "list": [
3
+ {
4
+ "id": 1,
5
+ "contactId": 1,
6
+ "contactIndividualId": null,
7
+ "giftType": "Cash",
8
+ "giftDate": "12/7/2023",
9
+ "amount": "$10.50",
10
+ "segment": null,
11
+ "batch": null,
12
+ "giftUrl": "/api/Gift/1",
13
+ "culture": null,
14
+ "exchangeRate": 1.0,
15
+ "currencyCode": "USD",
16
+ "baseCurrencyCode": "USD"
17
+ },
18
+ {
19
+ "id": 2,
20
+ "contactId": 1,
21
+ "contactIndividualId": null,
22
+ "giftType": "Cash",
23
+ "giftDate": "12/7/2023",
24
+ "amount": "$10.50",
25
+ "segment": null,
26
+ "batch": null,
27
+ "giftUrl": "/api/Gift/2",
28
+ "culture": null,
29
+ "exchangeRate": 1.0,
30
+ "currencyCode": "USD",
31
+ "baseCurrencyCode": "USD"
32
+ },
33
+ {
34
+ "id": 3,
35
+ "contactId": 1,
36
+ "contactIndividualId": null,
37
+ "giftType": "Cash",
38
+ "giftDate": "12/7/2023",
39
+ "amount": "$10.50",
40
+ "segment": null,
41
+ "batch": null,
42
+ "giftUrl": "/api/Gift/3",
43
+ "culture": null,
44
+ "exchangeRate": 1.0,
45
+ "currencyCode": "USD",
46
+ "baseCurrencyCode": "USD"
47
+ },
48
+ {
49
+ "id": 4,
50
+ "contactId": 1,
51
+ "contactIndividualId": null,
52
+ "giftType": "Cash",
53
+ "giftDate": "12/7/2023",
54
+ "amount": "$10.50",
55
+ "segment": null,
56
+ "batch": null,
57
+ "giftUrl": "/api/Gift/4",
58
+ "culture": null,
59
+ "exchangeRate": 1.0,
60
+ "currencyCode": "USD",
61
+ "baseCurrencyCode": "USD"
62
+ },
63
+ {
64
+ "id": 5,
65
+ "contactId": 1,
66
+ "contactIndividualId": null,
67
+ "giftType": "Cash",
68
+ "giftDate": "12/7/2023",
69
+ "amount": "$10.50",
70
+ "segment": null,
71
+ "batch": null,
72
+ "giftUrl": "/api/Gift/5",
73
+ "culture": null,
74
+ "exchangeRate": 1.0,
75
+ "currencyCode": "USD",
76
+ "baseCurrencyCode": "USD"
77
+ }
78
+ ],
79
+ "total": 5
80
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "id": 1,
3
+ "transactionSource": "source",
4
+ "transactionId": 42,
5
+ "contactId": 1,
6
+ "contactName": "Test Contact",
7
+ "contactUrl": "/api/Contact/1",
8
+ "giftType": "Cash",
9
+ "giftTypeFormatted": "Cash",
10
+ "giftDate": "2023-12-07T00:00:00",
11
+ "giftDateFormatted": "12/7/2023",
12
+ "amount": 10.5,
13
+ "amountFormatted": "$10.50",
14
+ "currencyCode": "USD",
15
+ "exchangeRate": 1.0,
16
+ "baseCurrencyCode": "USD",
17
+ "batch": null,
18
+ "createDateTimeUtc": "2023-12-07T16:10:47.017",
19
+ "createdByUser": "Test User",
20
+ "modifiedDateTimeUtc": "2023-12-07T16:10:47.03",
21
+ "modifiedByUser": "Test User",
22
+ "segmentId": null,
23
+ "segment": null,
24
+ "segmentCode": null,
25
+ "segmentUrl": null,
26
+ "mediaOutletId": null,
27
+ "mediaOutlet": null,
28
+ "grantId": null,
29
+ "grant": null,
30
+ "grantUrl": null,
31
+ "notes": "",
32
+ "tribute": null,
33
+ "tributeId": null,
34
+ "tributeType": null,
35
+ "acknowledgeeIndividualId": null,
36
+ "isAcknowledgedGift": false,
37
+ "acknowledgementDate": null,
38
+ "acknowledgementNotes": "",
39
+ "receiptDate": null,
40
+ "receiptDateFormatted": "",
41
+ "contactPassthroughId": null,
42
+ "contactPassthroughUrl": null,
43
+ "contactIndividualId": null,
44
+ "cashAccountingCode": null,
45
+ "giftAskId": null,
46
+ "contactMembershipId": null,
47
+ "giftDesignations": [],
48
+ "giftPremiums": [],
49
+ "pledgePayments": [],
50
+ "recurringGiftPayments": [],
51
+ "giftUrl": "/api/Gift/1",
52
+ "isPrivate": false,
53
+ "isTaxDeductible": true,
54
+ "customFields": []
55
+ }