sk_api_schema 0.10.6 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +6 -2
- data/CHANGELOG.md +4 -0
- data/README.rdoc +1 -1
- data/Rakefile +0 -10
- data/json/v1.0/account.json +13 -0
- data/json/v1.0/contact.json +7 -1
- data/json/v1.0/credit_note.json +6 -0
- data/json/v1.0/invoice.json +6 -0
- data/json/v1.0/order.json +6 -0
- data/json/v1.0/product.json +0 -4
- data/json/v1.0/recurring.json +6 -0
- data/json/v2.0/README.md +28 -0
- data/json/v2.0/account.json +31 -18
- data/json/v2.0/account_billing.json +15 -7
- data/json/v2.0/account_entry.json +19 -16
- data/json/v2.0/address.json +7 -6
- data/json/v2.0/attachment.json +17 -16
- data/json/v2.0/auth_permission.json +6 -5
- data/json/v2.0/comment.json +15 -9
- data/json/v2.0/company.json +11 -8
- data/json/v2.0/contact.json +45 -49
- data/json/v2.0/credit_note.json +59 -84
- data/json/v2.0/divider_item.json +9 -8
- data/json/v2.0/document.json +41 -36
- data/json/v2.0/email.json +29 -22
- data/json/v2.0/email_template.json +15 -10
- data/json/v2.0/estimate.json +59 -76
- data/json/v2.0/export.json +26 -16
- data/json/v2.0/export_template.json +15 -9
- data/json/v2.0/invoice.json +62 -92
- data/json/v2.0/language.json +14 -6
- data/json/v2.0/line_item.json +14 -13
- data/json/v2.0/order.json +59 -75
- data/json/v2.0/payment.json +17 -12
- data/json/v2.0/payment_reminder.json +53 -71
- data/json/v2.0/pdf_template.json +14 -8
- data/json/v2.0/product.json +16 -13
- data/json/v2.0/recurring.json +57 -54
- data/json/v2.0/sub.json +14 -7
- data/json/v2.0/sub_total_item.json +10 -9
- data/json/v2.0/tag.json +13 -5
- data/json/v2.0/task.json +31 -16
- data/json/v2.0/text_template.json +16 -10
- data/json/v2.0/user.json +8 -8
- data/lib/sk_api_schema/version.rb +1 -1
- data/sk_api_schema.gemspec +1 -1
- data/spec/sk_api_schema_spec.rb +35 -19
- data/spec/spec_helper.rb +1 -2
- metadata +7 -7
- data/json/v2.0/client.json +0 -318
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 247a46ed65c67e561a7d45d0835084f1b992822e
|
4
|
+
data.tar.gz: 9232c88e6b95a53dda08d2a93b01fc6760120f93
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 698ad34b2abf8280e66eb9f5773ac17136c2b682bf99b6a7a38841232316c90ad30b4b83136f66a3df04a8ff304592ed9a9757a13cf8d7c46e357331e35df208
|
7
|
+
data.tar.gz: 936f38495f7dc5afa7ea7fb606d618c85fda15c43e25bd500b49a97ab7868ecad3dcf5b7b3ebf20416bf5591c456cbc6e05a4a2cbf888e7680d31076d0e5d4bf
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,10 @@
|
|
3
3
|
See [commit messages](https://github.com/salesking/sk_api_schema/commits/) for details.
|
4
4
|
Also sign up to our [Developer Newsletter](http://www.salesking.eu/dev/newsletter/) to stay up-to-date!
|
5
5
|
|
6
|
+
##2017-05
|
7
|
+
|
8
|
+
* Product remove lock_version
|
9
|
+
|
6
10
|
##2015-10
|
7
11
|
|
8
12
|
* Update description to clarify number field decimal places length
|
data/README.rdoc
CHANGED
data/Rakefile
CHANGED
@@ -2,17 +2,7 @@
|
|
2
2
|
require 'bundler/gem_tasks'
|
3
3
|
require 'rspec'
|
4
4
|
require 'rspec/core/rake_task'
|
5
|
-
require 'rdoc/task'
|
6
5
|
|
7
6
|
desc "Run specs"
|
8
7
|
RSpec::Core::RakeTask.new
|
9
8
|
task :default => :spec
|
10
|
-
|
11
|
-
desc 'Generate documentation.'
|
12
|
-
Rake::RDocTask.new(:rdoc) do |rdoc|
|
13
|
-
rdoc.rdoc_dir = 'rdoc'
|
14
|
-
rdoc.title = 'SalesKing-Api JSON Schema'
|
15
|
-
rdoc.options << '--line-numbers' << '--inline-source'
|
16
|
-
rdoc.rdoc_files.include('README')
|
17
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
18
|
-
end
|
data/json/v1.0/account.json
CHANGED
@@ -46,6 +46,19 @@
|
|
46
46
|
"type":"string",
|
47
47
|
"maxLength": 30
|
48
48
|
},
|
49
|
+
"billing_fee_name":{
|
50
|
+
"description": "Name for a billing fee line item. The item is added to the resulting document upon each account_billing creation, if billing_fee_price_single is set.",
|
51
|
+
"type":"string",
|
52
|
+
"maxLength": 255
|
53
|
+
},
|
54
|
+
"billing_fee_tax":{
|
55
|
+
"description": "Tax value for a billing fee line item. The item is added to the resulting document upon each account_billing creation.",
|
56
|
+
"type":"number"
|
57
|
+
},
|
58
|
+
"billing_fee_price_single":{
|
59
|
+
"description": "Price of a billing fee line item. This field serves as a trigger of whether to add the item. The item is added to the resulting document upon each account_billing creation.",
|
60
|
+
"type":"number"
|
61
|
+
},
|
49
62
|
"hide_fields":{
|
50
63
|
"description": "A list of account entry field names. The fields are hidden on account entry lists and forms so one can focus on the important inputs. For example hide: tax,description,billed_at",
|
51
64
|
"type":"string",
|
data/json/v1.0/contact.json
CHANGED
@@ -186,7 +186,7 @@
|
|
186
186
|
"type":"number"
|
187
187
|
},
|
188
188
|
"due_days":{
|
189
|
-
"description": "Default due days for new
|
189
|
+
"description": "Default due days for new documents.",
|
190
190
|
"type":"integer"
|
191
191
|
},
|
192
192
|
"address_field":{
|
@@ -235,6 +235,12 @@
|
|
235
235
|
"description": "Product of the probability and sales potential. e.g how much of the sales_potential can we get?",
|
236
236
|
"readonly":true,
|
237
237
|
"type":"number"
|
238
|
+
},
|
239
|
+
"tax_exemption_id":{
|
240
|
+
"description": "ID of a tax exemption. New documents inherit the tax exemption and will be created without any taxes.",
|
241
|
+
"type":"string",
|
242
|
+
"maxLength": 22,
|
243
|
+
"minLength":22
|
238
244
|
}
|
239
245
|
},
|
240
246
|
"links":[
|
data/json/v1.0/credit_note.json
CHANGED
@@ -201,6 +201,12 @@
|
|
201
201
|
"description": "Percentage of gross profit to cost of items sold. Calculated from gross_margin_total/net_total*100",
|
202
202
|
"readonly":true,
|
203
203
|
"type":"number"
|
204
|
+
},
|
205
|
+
"tax_exemption_id":{
|
206
|
+
"description": "ID of a tax exemption. When set all item taxes are omitted.",
|
207
|
+
"type":"string",
|
208
|
+
"maxLength": 22,
|
209
|
+
"minLength":22
|
204
210
|
}
|
205
211
|
},
|
206
212
|
"links":[
|
data/json/v1.0/invoice.json
CHANGED
@@ -223,6 +223,12 @@
|
|
223
223
|
"type":"string",
|
224
224
|
"maxLength": 22,
|
225
225
|
"minLength": 22
|
226
|
+
},
|
227
|
+
"tax_exemption_id":{
|
228
|
+
"description": "ID of a tax exemption. When set all item taxes are omitted.",
|
229
|
+
"type":"string",
|
230
|
+
"maxLength": 22,
|
231
|
+
"minLength":22
|
226
232
|
}
|
227
233
|
},
|
228
234
|
"links":[
|
data/json/v1.0/order.json
CHANGED
@@ -198,6 +198,12 @@
|
|
198
198
|
"description": "Percentage of gross profit to cost of items sold. Calculated from gross_margin_total/net_total*100",
|
199
199
|
"readonly":true,
|
200
200
|
"type":"number"
|
201
|
+
},
|
202
|
+
"tax_exemption_id":{
|
203
|
+
"description": "ID of a tax exemption. When set all item taxes are omitted.",
|
204
|
+
"type":"string",
|
205
|
+
"maxLength": 22,
|
206
|
+
"minLength":22
|
201
207
|
}
|
202
208
|
},
|
203
209
|
"links":[
|
data/json/v1.0/product.json
CHANGED
data/json/v1.0/recurring.json
CHANGED
@@ -211,6 +211,12 @@
|
|
211
211
|
"default": null,
|
212
212
|
"type": "string",
|
213
213
|
"enum":["email"]
|
214
|
+
},
|
215
|
+
"tax_exemption_id":{
|
216
|
+
"description": "ID of a tax exemption. When set all item taxes are omitted.",
|
217
|
+
"type":"string",
|
218
|
+
"maxLength": 22,
|
219
|
+
"minLength":22
|
214
220
|
}
|
215
221
|
},
|
216
222
|
"links":[
|
data/json/v2.0/README.md
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# V2.0 SalesKing API Schema
|
2
|
+
|
3
|
+
The new version is not live yet! We put it here so one can follow the changes.
|
4
|
+
|
5
|
+
The following todo's are some of the things we are going to tackle.
|
6
|
+
|
7
|
+
## TODO
|
8
|
+
|
9
|
+
- [x] remove all deprecations
|
10
|
+
- [x] move required attributes markup to top level object definition
|
11
|
+
- [x] add schema validation to specs
|
12
|
+
- [x] revise schema definitions for nested objects
|
13
|
+
- [x] use anyOf definitions for nested line items
|
14
|
+
- [x] add type to nested objects reflecting the class
|
15
|
+
- [x] add company_id to all resources
|
16
|
+
- [ ] revise filter methods
|
17
|
+
- [ ] remove nested url's in favour of filter links instead e.g /emails?filter[contact_ids]=ID
|
18
|
+
- [ ] change to/from filters to to_date/from_date
|
19
|
+
- [ ] add /teams
|
20
|
+
- [x] move collection info to header
|
21
|
+
- [ ] define error object
|
22
|
+
- ..
|
23
|
+
|
24
|
+
## Server Side TODO
|
25
|
+
|
26
|
+
- [ ] remove prefixed nesting
|
27
|
+
- [ ] be more strict about validations e.g field length, strings vs number
|
28
|
+
- [ ] remove links in returned objects
|
data/json/v2.0/account.json
CHANGED
@@ -1,12 +1,21 @@
|
|
1
|
-
{
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
|
+
"type":"object",
|
2
4
|
"title": "account",
|
3
|
-
"
|
4
|
-
"
|
5
|
+
"description": "An account to track times, expenses, projects, usages, etc. Those are single entry accounts, opposed to double entry accounting in bookkeeping accounts.",
|
6
|
+
"required": ["name"],
|
5
7
|
"properties":{
|
6
8
|
"id":{
|
7
9
|
"description":"Unique identifier - UUID",
|
8
10
|
"identity":true,
|
9
|
-
"
|
11
|
+
"readOnly":true,
|
12
|
+
"type":"string",
|
13
|
+
"maxLength": 22,
|
14
|
+
"minLength":22
|
15
|
+
},
|
16
|
+
"company_id":{
|
17
|
+
"description":"Company",
|
18
|
+
"readOnly":true,
|
10
19
|
"type":"string",
|
11
20
|
"maxLength": 22,
|
12
21
|
"minLength":22
|
@@ -19,19 +28,17 @@
|
|
19
28
|
"name":{
|
20
29
|
"description": "The name of the account",
|
21
30
|
"type":"string",
|
22
|
-
"required":true,
|
23
31
|
"maxLength": 100
|
24
32
|
},
|
25
33
|
"description":{
|
26
34
|
"description": "Account description",
|
27
35
|
"type":"string",
|
28
|
-
"format":"text",
|
29
36
|
"maxLength": 255
|
30
37
|
},
|
31
38
|
"balance":{
|
32
39
|
"description": "The account balance is the sum of all entries, also those from sub-accounts.",
|
33
40
|
"type":"number",
|
34
|
-
"
|
41
|
+
"readOnly":true
|
35
42
|
},
|
36
43
|
"budget":{
|
37
44
|
"description": "If an account is used to track budgetary things f.ex. projects, this fields can be used to perform calculations like: Are we still inside the allowed budget?",
|
@@ -46,11 +53,23 @@
|
|
46
53
|
"type":"string",
|
47
54
|
"maxLength": 30
|
48
55
|
},
|
49
|
-
"
|
50
|
-
"description": "
|
56
|
+
"default_tax":{
|
57
|
+
"description": "The default tax for new account entries, if tax is empty on create.",
|
58
|
+
"type":"number"
|
59
|
+
},
|
60
|
+
"billing_fee_name":{
|
61
|
+
"description": "Name for a billing fee line item. The item is added to the resulting document upon each account_billing creation, if billing_fee_price_single is set.",
|
51
62
|
"type":"string",
|
52
63
|
"maxLength": 255
|
53
64
|
},
|
65
|
+
"billing_fee_tax":{
|
66
|
+
"description": "Tax value for a billing fee line item. The item is added to the resulting document upon each account_billing creation.",
|
67
|
+
"type":"number"
|
68
|
+
},
|
69
|
+
"billing_fee_price_single":{
|
70
|
+
"description": "Price of a billing fee line item. This field serves as a trigger of whether to add the item. The item is added to the resulting document upon each account_billing creation.",
|
71
|
+
"type":"number"
|
72
|
+
},
|
54
73
|
"contact_id":{
|
55
74
|
"description": "The contacts uuid to which the account is related.",
|
56
75
|
"type":"string",
|
@@ -66,13 +85,13 @@
|
|
66
85
|
"created_at":{
|
67
86
|
"description": "Date the object was created in SK. Never changes afterwards",
|
68
87
|
"format":"date-time",
|
69
|
-
"
|
88
|
+
"readOnly":true,
|
70
89
|
"type":"string"
|
71
90
|
},
|
72
91
|
"updated_at":{
|
73
92
|
"description": "Date the object was edited in SK.",
|
74
93
|
"format":"date-time",
|
75
|
-
"
|
94
|
+
"readOnly":true,
|
76
95
|
"type":"string"
|
77
96
|
},
|
78
97
|
"team_id":{
|
@@ -86,7 +105,7 @@
|
|
86
105
|
"type":"string",
|
87
106
|
"maxLength": 22,
|
88
107
|
"minLength":22,
|
89
|
-
"
|
108
|
+
"readOnly":true
|
90
109
|
}
|
91
110
|
},
|
92
111
|
"links":[
|
@@ -161,12 +180,6 @@
|
|
161
180
|
{ "rel": "create",
|
162
181
|
"href": "accounts",
|
163
182
|
"method": "POST"
|
164
|
-
},
|
165
|
-
{ "rel": "account_entries",
|
166
|
-
"href": "accounts/{id}/account_entries"
|
167
|
-
},
|
168
|
-
{ "rel": "account_billings",
|
169
|
-
"href": "accounts/{id}/account_billings"
|
170
183
|
}
|
171
184
|
]
|
172
185
|
}
|
@@ -1,12 +1,21 @@
|
|
1
|
-
{
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
|
+
"type":"object",
|
2
4
|
"title": "account_billing",
|
3
|
-
"name": "account_billing",
|
4
5
|
"description": "BETA An account billing serves as the glue between an account a document and their related account entries and line items. It also lets one keep track of who billed what and when. A billing is created from billable account entries, which are turned into line items for a document.",
|
6
|
+
"required": ["account_id"],
|
5
7
|
"properties":{
|
6
8
|
"id":{
|
7
9
|
"description":"Unique identifier - UUID",
|
8
10
|
"identity":true,
|
9
|
-
"
|
11
|
+
"readOnly":true,
|
12
|
+
"type":"string",
|
13
|
+
"maxLength": 22,
|
14
|
+
"minLength":22
|
15
|
+
},
|
16
|
+
"company_id":{
|
17
|
+
"description":"Company",
|
18
|
+
"readOnly":true,
|
10
19
|
"type":"string",
|
11
20
|
"maxLength": 22,
|
12
21
|
"minLength":22
|
@@ -19,7 +28,6 @@
|
|
19
28
|
"account_id":{
|
20
29
|
"description": "The related account. Must be set for entries to be found.",
|
21
30
|
"type":"string",
|
22
|
-
"required":true,
|
23
31
|
"maxLength": 22,
|
24
32
|
"minLength":22
|
25
33
|
},
|
@@ -42,14 +50,14 @@
|
|
42
50
|
"document_id":{
|
43
51
|
"description": "The document created by the billing.",
|
44
52
|
"type":"string",
|
45
|
-
"
|
53
|
+
"readOnly": true,
|
46
54
|
"maxLength": 22,
|
47
55
|
"minLength":22
|
48
56
|
},
|
49
57
|
"created_at":{
|
50
58
|
"description": "Date the object was created in SK. Never changes afterwards",
|
51
59
|
"format":"date-time",
|
52
|
-
"
|
60
|
+
"readOnly":true,
|
53
61
|
"type":"string"
|
54
62
|
},
|
55
63
|
"team_id":{
|
@@ -63,7 +71,7 @@
|
|
63
71
|
"type":"string",
|
64
72
|
"maxLength": 22,
|
65
73
|
"minLength":22,
|
66
|
-
"
|
74
|
+
"readOnly":true
|
67
75
|
}
|
68
76
|
},
|
69
77
|
"links":[
|
@@ -1,33 +1,41 @@
|
|
1
|
-
{
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
|
+
"type":"object",
|
2
4
|
"title": "account_entry",
|
3
|
-
"name": "account_entry",
|
4
5
|
"description": "A entry for an account",
|
6
|
+
"required": ["account_id", "price_single"],
|
5
7
|
"properties":{
|
6
8
|
"id":{
|
7
9
|
"description":"Unique identifier - UUID",
|
8
10
|
"identity":true,
|
9
|
-
"
|
11
|
+
"readOnly":true,
|
12
|
+
"type":"string",
|
13
|
+
"maxLength": 22,
|
14
|
+
"minLength":22
|
15
|
+
},
|
16
|
+
"company_id":{
|
17
|
+
"description":"Company",
|
18
|
+
"readOnly":true,
|
10
19
|
"type":"string",
|
11
20
|
"maxLength": 22,
|
12
21
|
"minLength":22
|
13
22
|
},
|
14
23
|
"account_id":{
|
15
24
|
"description":"Account the entry belongs to.",
|
16
|
-
"required":true,
|
17
25
|
"type":"string",
|
18
26
|
"maxLength": 22,
|
19
27
|
"minLength":22
|
20
28
|
},
|
21
29
|
"document_id":{
|
22
30
|
"description":"Document the entry is related to. This relation is set by an account billing.",
|
23
|
-
"
|
31
|
+
"readOnly":true,
|
24
32
|
"type":"string",
|
25
33
|
"maxLength": 22,
|
26
34
|
"minLength":22
|
27
35
|
},
|
28
36
|
"item_id":{
|
29
37
|
"description":"Line item on the document the entry is related to. This relation is set by an account billing or when a document is booked onto an account.",
|
30
|
-
"
|
38
|
+
"readOnly":true,
|
31
39
|
"type":"string",
|
32
40
|
"maxLength": 22,
|
33
41
|
"minLength":22
|
@@ -40,16 +48,15 @@
|
|
40
48
|
"description":{
|
41
49
|
"description": "Entry description",
|
42
50
|
"type":"string",
|
43
|
-
"format": "
|
51
|
+
"format": "string"
|
44
52
|
},
|
45
53
|
"price_single":{
|
46
54
|
"description": "Net price of a single entry. If a product id is given, price_single is taken from the product if not set.",
|
47
|
-
"type":"number"
|
48
|
-
"required" : true
|
55
|
+
"type":"number"
|
49
56
|
},
|
50
57
|
"net_total":{
|
51
58
|
"description": "Net price of a single entry. Calculated from price_single * quantity",
|
52
|
-
"
|
59
|
+
"readOnly":true,
|
53
60
|
"type":"number"
|
54
61
|
},
|
55
62
|
"tax":{
|
@@ -84,18 +91,14 @@
|
|
84
91
|
"created_at":{
|
85
92
|
"description": "Date the object was created. Never changes afterwards",
|
86
93
|
"format":"date-time",
|
87
|
-
"
|
94
|
+
"readOnly":true,
|
88
95
|
"type":"string"
|
89
96
|
},
|
90
97
|
"updated_at":{
|
91
98
|
"description": "Date the object was edited.",
|
92
99
|
"format":"date-time",
|
93
|
-
"
|
100
|
+
"readOnly":true,
|
94
101
|
"type":"string"
|
95
|
-
},
|
96
|
-
"_destroy":{
|
97
|
-
"description": "When set an existing entry will be deleted. This switch is used for entries passed during batch operations.",
|
98
|
-
"type":"boolean"
|
99
102
|
}
|
100
103
|
},
|
101
104
|
"links":[
|