Repository: amcintosh/freshbooks-python-sdk (language: python)

Issue:
✨ Includes for create, updates
# Purpose

Allow IncludesBuilders to be, ahem, included on accounting create and
update calls.


Discussion / hints:

Fix patch:
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 13a42ae..7d931ff 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,2 +1,2 @@
 # The owners of this service.
-* @amcintosh @freshbooks/6ix
\ No newline at end of file
+* @amcintosh @freshbooks/sliceapi
diff --git a/README.md b/README.md
index e98053d..fc0f0a3 100644
--- a/README.md
+++ b/README.md
@@ -121,16 +121,16 @@ project = freshBooksClient.projects.get(business_id, project_id)
 
 #### Get and List
 
-API calls with a single resouce return a `Result` object with the returned data accessible via attributes. The raw json-parsed dictionary can also be accessed via the `data` attribute.
+API calls with a single resource return a `Result` object with the returned data accessible via attributes. The raw json-parsed dictionary can also be accessed via the `data` attribute.
 
 ```python
 client = freshBooksClient.clients.get(account_id, client_user_id)
 
 assert client.organization == "FreshBooks"
-assert client.userid == user_id
+assert client.userid == client_user_id
 
 assert client.data["organization"] == "FreshBooks"
-assert client.data["userid"] == user_id
+assert client.data["userid"] == client_user_id
 ```
 
 `vis_state` returns an Enum. See [FreshBooks API - Active and Deleted Objects](https://www.freshbooks.com/api/active_deleted) for details.
@@ -210,7 +210,7 @@ except FreshBooksError as e:
 ```
 
 Not all resources have full CRUD methods available. For example expense categories have `list` and `get`
-calls, but are deletable. If you attempt to call a method that does not exist, the SDK will raise a
+calls, but are not deletable. If you attempt to call a method that does not exist, the SDK will raise a
 `FreshBooksNotImplementedError` exception, but this is not something you will likely have to account
 for outside of development.
 
diff --git a/setup.py b/setup.py
index 9ce767e..af2fa76 100644
--- a/setup.py
+++ b/setup.py
@@ -22,7 +22,7 @@
     include_package_data=True,
     install_requires=open("requirements.txt").readlines(),
     classifiers=[
-        "Development Status :: 3 - Alpha",
+        "Development Status :: 4 - Beta",
         "Intended Audience :: Developers",
         "License :: OSI Approved :: MIT License",
         "Programming Language :: Python",


Test patch:
diff --git a/tests/fixtures/create_client_response.json b/tests/fixtures/create_client_response.json
index 5f20125..73b4dea 100644
--- a/tests/fixtures/create_client_response.json
+++ b/tests/fixtures/create_client_response.json
@@ -7,23 +7,23 @@
                 "allow_late_fees": true,
                 "allow_late_notifications": true,
                 "bus_phone": "",
-                "company_industry": "None",
-                "company_size": "None",
+                "company_industry": null,
+                "company_size": null,
                 "currency_code": "CAD",
-                "direct_link_token": "None",
+                "direct_link_token": null,
                 "email": "john.doe@abcorp.com",
                 "fax": "",
                 "fname": "",
-                "has_retainer": "None",
-                "home_phone": "None",
+                "has_retainer": null,
+                "home_phone": null,
                 "id": 56789,
                 "language": "en",
-                "last_activity": "None",
-                "last_login": "None",
+                "last_activity": null,
+                "last_login": null,
                 "level": 0,
                 "lname": "",
                 "mob_phone": "",
-                "note": "None",
+                "note": null,
                 "notified": false,
                 "num_logins": 0,
                 "organization": "john.doe@abcorp.com",
@@ -35,7 +35,7 @@
                 "p_street2": "",
                 "pref_email": true,
                 "pref_gmail": false,
-                "retainer_id": "None",
+                "retainer_id": null,
                 "role": "client",
                 "s_city": "",
                 "s_code": "",
@@ -44,13 +44,14 @@
                 "s_street": "",
                 "s_street2": "",
                 "signup_date": "2020-11-17 02:27:03",
-                "statement_token": "None",
-                "subdomain": "None",
+                "statement_token": null,
+                "subdomain": null,
                 "updated": "2020-11-16 21:27:03",
                 "userid": 56789,
                 "username": "nTZRapCeW5",
-                "vat_name": "None",
-                "vat_number": "None",
+                "uuid": "7ee59bc7-c0a1-42d1-8d64-1b2d1dc45768",
+                "vat_name": null,
+                "vat_number": null,
                 "vis_state": 0
             }
         }
diff --git a/tests/fixtures/create_project_response.json b/tests/fixtures/create_project_response.json
index 2002497..85d29f3 100644
--- a/tests/fixtures/create_project_response.json
+++ b/tests/fixtures/create_project_response.json
@@ -2,26 +2,26 @@
     "project": {
         "id": 12345,
         "title": "Some Project",
-        "description": "None",
-        "due_date": "None",
+        "description": null,
+        "due_date": null,
         "client_id": 56789,
         "internal": false,
-        "budget": "None",
+        "budget": 21600,
         "fixed_price": "600.00",
-        "rate": "None",
-        "billing_method": "None",
+        "rate": null,
+        "billing_method": "project_rate",
         "project_type": "fixed_price",
-        "project_manager_id": "None",
+        "project_manager_id": null,
         "active": true,
         "complete": false,
         "sample": false,
         "created_at": "2020-11-219T13:22:04",
         "updated_at": "2020-11-219T13:23:52",
-        "logged_duration": "None",
+        "logged_duration": null,
         "services": [],
         "billed_amount": "0.00",
         "billed_status": "unbilled",
-        "retainer_id": "None",
+        "retainer_id": null,
         "expense_markup": "0",
         "group": {
             "id": 321,
diff --git a/tests/fixtures/get_client_response.json b/tests/fixtures/get_client_response.json
index a79763d..ed3091a 100644
--- a/tests/fixtures/get_client_response.json
+++ b/tests/fixtures/get_client_response.json
@@ -7,20 +7,20 @@
                 "allow_late_fees": true,
                 "allow_late_notifications": true,
                 "bus_phone": "",
-                "company_industry": "None",
-                "company_size": "None",
+                "company_industry": null,
+                "company_size": null,
                 "currency_code": "CAD",
-                "direct_link_token": "None",
+                "direct_link_token": null,
                 "email": "gordon.shumway@AmericanCyanamid.com",
                 "fax": "",
                 "fname": "Gordon",
                 "grand_total_balance": [],
-                "has_retainer": "None",
-                "home_phone": "None",
+                "has_retainer": null,
+                "home_phone": null,
                 "id": 12345,
                 "language": "en",
-                "last_activity": "None",
-                "last_login": "None",
+                "last_activity": null,
+                "last_login": null,
                 "level": 0,
                 "lname": "Shumway",
                 "mob_phone": "",
@@ -54,7 +54,7 @@
                 "p_street2": "",
                 "pref_email": true,
                 "pref_gmail": false,
-                "retainer_id": "None",
+                "retainer_id": null,
                 "role": "client",
                 "s_city": "",
                 "s_code": "",
@@ -63,13 +63,14 @@
                 "s_street": "",
                 "s_street2": "",
                 "signup_date": "2020-10-31 15:25:34",
-                "statement_token": "None",
-                "subdomain": "None",
+                "statement_token": null,
+                "subdomain": null,
                 "updated": "2020-11-01 13:11:10",
                 "userid": 12345,
                 "username": "alf",
-                "vat_name": "None",
-                "vat_number": "None",
+                "uuid": "ab1c33f1-8827-4a46-b335-75a6a4149db8",
+                "vat_name": null,
+                "vat_number": null,
                 "vis_state": 0
             }
         }
diff --git a/tests/fixtures/list_clients_response.json b/tests/fixtures/list_clients_response.json
index 6e86b1a..d52d8c2 100644
--- a/tests/fixtures/list_clients_response.json
+++ b/tests/fixtures/list_clients_response.json
@@ -8,19 +8,19 @@
                     "allow_late_fees": true,
                     "allow_late_notifications": true,
                     "bus_phone": "",
-                    "company_industry": "None",
-                    "company_size": "None",
+                    "company_industry": null,
+                    "company_size": null,
                     "currency_code": "CAD",
-                    "direct_link_token": "None",
+                    "direct_link_token": null,
                     "email": "gordon.shumway@AmericanCyanamid.com",
                     "fax": "",
                     "fname": "Gordon",
-                    "has_retainer": "None",
-                    "home_phone": "None",
+                    "has_retainer": null,
+                    "home_phone": null,
                     "id": 12345,
                     "language": "en",
-                    "last_activity": "None",
-                    "last_login": "None",
+                    "last_activity": null,
+                    "last_login": null,
                     "level": 0,
                     "lname": "Shumway",
                     "mob_phone": "",
@@ -36,7 +36,7 @@
                     "p_street2": "",
                     "pref_email": true,
                     "pref_gmail": false,
-                    "retainer_id": "None",
+                    "retainer_id": null,
                     "role": "client",
                     "s_city": "",
                     "s_code": "",
@@ -45,13 +45,14 @@
                     "s_street": "",
                     "s_street2": "",
                     "signup_date": "2020-10-31 15:25:34",
-                    "statement_token": "None",
-                    "subdomain": "None",
+                    "statement_token": null,
+                    "subdomain": null,
                     "updated": "2020-11-01 13:11:10",
                     "userid": 12345,
                     "username": "alf",
-                    "vat_name": "None",
-                    "vat_number": "None",
+                    "uuid": "ab1c33f1-8827-4a46-b335-75a6a4149db8",
+                    "vat_name": null,
+                    "vat_number": null,
                     "vis_state": 0
                 },
                 {
@@ -60,19 +61,19 @@
                     "allow_late_fees": true,
                     "allow_late_notifications": true,
                     "bus_phone": "",
-                    "company_industry": "None",
-                    "company_size": "None",
+                    "company_industry": null,
+                    "company_size": null,
                     "currency_code": "CAD",
-                    "direct_link_token": "None",
+                    "direct_link_token": null,
                     "email": "will.tanner@AmericanCyanamid.com",
                     "fax": "",
                     "fname": "Willie",
-                    "has_retainer": "None",
-                    "home_phone": "None",
+                    "has_retainer": null,
+                    "home_phone": null,
                     "id": 12346,
                     "language": "en",
-                    "last_activity": "None",
-                    "last_login": "None",
+                    "last_activity": null,
+                    "last_login": null,
                     "level": 0,
                     "lname": "Tanner",
                     "mob_phone": "",
@@ -88,7 +89,7 @@
                     "p_street2": "",
                     "pref_email": true,
                     "pref_gmail": false,
-                    "retainer_id": "None",
+                    "retainer_id": null,
                     "role": "client",
                     "s_city": "",
                     "s_code": "",
@@ -97,13 +98,14 @@
                     "s_street": "",
                     "s_street2": "",
                     "signup_date": "2020-10-17 05:25:34",
-                    "statement_token": "None",
-                    "subdomain": "None",
+                    "statement_token": null,
+                    "subdomain": null,
                     "updated": "2020-10-17 06:25:34",
                     "userid": 12346,
                     "username": "willie",
-                    "vat_name": "None",
-                    "vat_number": "None",
+                    "uuid": "135686c8-a635-46d9-a078-dfcac9761a7a",
+                    "vat_name": null,
+                    "vat_number": null,
                     "vis_state": 0
                 },
                 {
@@ -112,19 +114,19 @@
                     "allow_late_fees": true,
                     "allow_late_notifications": true,
                     "bus_phone": "",
-                    "company_industry": "None",
-                    "company_size": "None",
+                    "company_industry": null,
+                    "company_size": null,
                     "currency_code": "CAD",
-                    "direct_link_token": "None",
+                    "direct_link_token": null,
                     "email": "gmilfoil@usaf.com",
                     "fax": "",
                     "fname": "Gilbert",
-                    "has_retainer": "None",
-                    "home_phone": "None",
+                    "has_retainer": null,
+                    "home_phone": null,
                     "id": 12457,
                     "language": "en",
-                    "last_activity": "None",
-                    "last_login": "None",
+                    "last_activity": null,
+                    "last_login": null,
                     "level": 0,
                     "lname": "Milfoil",
                     "mob_phone": "",
@@ -140,7 +142,7 @@
                     "p_street2": "",
                     "pref_email": true,
                     "pref_gmail": false,
-                    "retainer_id": "None",
+                    "retainer_id": null,
                     "role": "client",
                     "s_city": "",
                     "s_code": "",
@@ -149,13 +151,14 @@
                     "s_street": "",
                     "s_street2": "",
                     "signup_date": "2019-09-13 08:16:74",
-                    "statement_token": "None",
-                    "subdomain": "None",
+                    "statement_token": null,
+                    "subdomain": null,
                     "updated": "2020-02-07 19:55:04",
                     "userid": 12457,
                     "username": "sir",
-                    "vat_name": "None",
-                    "vat_number": "None",
+                    "uuid": "ceb0e0b4-b0bd-4c78-80aa-7d6339ffb5f9",
+                    "vat_name": null,
+                    "vat_number": null,
                     "vis_state": 0
                 }
             ],