sk_api_schema 0.0.5 → 0.0.6

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.
data/README.rdoc CHANGED
@@ -8,14 +8,20 @@ besides the schema. Other languages can take advantage of the raw json files.
8
8
  To get a fully working ruby client take a look at http://github.com/salesking/sk-api
9
9
  which will be replaced soon by a new gem at http://github.com/salesking/sk_api_activeresource
10
10
 
11
+ == Notice:
11
12
 
12
- Notice: This gem is still evolving and will be used actively by salesking to deliver the api soon.
13
- Atm the JSON files are the most interesting stuff in here.
13
+ This gem is used actively by SalesKing to deliver it's api resources BUT commits
14
+ and changes in here might not be directly reflected.
15
+ The gem version does not reflect the api version. The version, for now, is keept
16
+ in the folder-name and as long as there are no major changes(breaking backwards
17
+ compatibility), the version number will remain.
18
+
19
+ Especially within the next couple of weeks (until beginning of march) you will
20
+ see some more resources made available. Links within each resource, will
21
+ also be available but still need some cleanup.
14
22
 
15
23
  == Install
16
24
 
17
25
  gem install sk_api_schema
18
26
 
19
- == Usage
20
-
21
27
  Copyright (c) 2010 Georg Leciejewski, released under the MIT license
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.5
1
+ 0.0.6
@@ -134,6 +134,93 @@
134
134
  "description": "A client can have many addresses, sorted by date descending(new first). Default address is the most recent one.",
135
135
  "type":"array",
136
136
  "properties" : {"$ref":"./addresses.json#properties"}
137
+ },
138
+ "team_id":{
139
+ "description": "A team uuid. If set only the team and its parent teams can see the record.",
140
+ "type":"string"
141
+ }
142
+ },
143
+ "links":[
144
+ { "rel": "self",
145
+ "href": "clients/{id}"
146
+ },
147
+ { "rel": "instances",
148
+ "href": "clients",
149
+ "properties" : {
150
+ "page":{
151
+ "title" : "Page",
152
+ "description": "In paginated results set the page to look for",
153
+ "type":"number"
154
+ },
155
+ "filter[q]":{
156
+ "title" : "Search",
157
+ "description": "Search in first, last_name, organisation, email, number",
158
+ "type":"string"
159
+ },
160
+ "filter[tags]":{
161
+ "title" : "Tags",
162
+ "description": "Filter by a space delimited list of tags",
163
+ "type":"string"
164
+ },
165
+ "filter[from]":{
166
+ "title" : "From date",
167
+ "description": "All objects with a date after the date"
168
+ },
169
+ "filter[to]":{
170
+ "title" : "To date",
171
+ "description": "All objects with date before the date"
172
+ },
173
+ "sort_by":{
174
+ "title" : "Sort by",
175
+ "description": "Sort the results by the given field => number",
176
+ "enum":['organisation', 'number','email','first_name','last_name', 'created_at', 'updated_at'],
177
+ "type": 'string'
178
+ },
179
+ "sort":{
180
+ "title" : "Sort",
181
+ "enum":["ASC","DESC"],
182
+ "description": "Sort the results in ASC or DESC"
183
+ }
184
+ }
185
+ },
186
+ { "rel": "destroy",
187
+ "href": "clients/{id}",
188
+ "method": "DELETE"
189
+ },
190
+ { "rel": "update",
191
+ "href": "clients/{id}",
192
+ "method": "PUT"
193
+ },
194
+ { "rel": "create",
195
+ "href": "clients",
196
+ "method": "POST"
197
+ },
198
+ { "rel": "attachments",
199
+ "href": "clients/{id}/attachments"
200
+ },
201
+ { "rel": "invoices",
202
+ "href": "clients/{id}/invoices"
203
+ },
204
+ { "rel": "estimates",
205
+ "href": "clients/{id}/estimates"
206
+ },
207
+ { "rel": "orders",
208
+ "href": "clients/{id}/orders"
209
+ },
210
+ { "rel": "credit_notes",
211
+ "href": "clients/{id}/credit_notes"
212
+ },
213
+ { "rel": "recurrings",
214
+ "href": "clients/{id}/recurrings"
215
+ },
216
+ { "rel": "payment_reminders",
217
+ "href": "clients/{id}/payment_reminders"
218
+ },
219
+ { "rel": "comments",
220
+ "href": "clients/{id}/comments"
221
+ },
222
+ { "rel": "emails",
223
+ "href": "clients/{id}/emails"
137
224
  }
138
- }
225
+ ]
139
226
  }
@@ -0,0 +1,90 @@
1
+ { "type":"object",
2
+ "title": "comment",
3
+ "description":"An comment in SK must always be related to an object.",
4
+ "properties": {
5
+ "id": {
6
+ "description": "uuid of the adress.",
7
+ "identity":true,
8
+ "readonly":true,
9
+ "type":"string"
10
+ },
11
+ "text": {
12
+ "description": "The comment himself.",
13
+ "required":true,
14
+ "type":"string"
15
+ },
16
+ "related_object_type": {
17
+ "description": "Object type of the comments parent. Is the camelcased base class name: Document for invoice, credit_note,.., Contact for client",
18
+ "required":true,
19
+ "type":"string"
20
+ },
21
+ "related_object_id": {
22
+ "description": "uuid of the comments parent object.",
23
+ "required":true,
24
+ "type":"string"
25
+ },
26
+ "created_at": {
27
+ "description": "Date the object was created in SK. Never changes afterwards",
28
+ "format":"date-time",
29
+ "readonly":true,
30
+ "type":"string"
31
+ },
32
+ "updated_at": {
33
+ "description": "Date the object was edited in SK.",
34
+ "format":"date-time",
35
+ "readonly":true,
36
+ "type":"string"
37
+ }
38
+ },
39
+ "links":[
40
+ { "rel": "self",
41
+ "href": "comments/{id}"
42
+ },
43
+ { "rel": "instances",
44
+ "href": "comments",
45
+ "properties" : {
46
+ "page":{
47
+ "title" : "Page",
48
+ "description": "In paginated results set the page to look for",
49
+ "type":"number"
50
+ },
51
+ "filter[q]":{
52
+ "title" : "Search",
53
+ "description": "Search in text",
54
+ "type":"string"
55
+ },
56
+ "filter[from]":{
57
+ "title" : "From date",
58
+ "description": "All objects with a date after the date"
59
+ },
60
+ "filter[to]":{
61
+ "title" : "To date",
62
+ "description": "All objects with date before the date"
63
+ },
64
+ "sort_by":{
65
+ "title" : "Sort by",
66
+ "description": "Sort the results by the given field => number",
67
+ "enum":['created_at', 'updated_at'],
68
+ "type": 'string'
69
+ },
70
+ "sort":{
71
+ "title" : "Sort",
72
+ "enum":["ASC","DESC"],
73
+ "description": "Sort the results in ASC or DESC"
74
+ }
75
+ }
76
+ },
77
+ { "rel": "destroy",
78
+ "href": "comments/{id}",
79
+ "method": "DELETE"
80
+ },
81
+ { "rel": "update",
82
+ "href": "comments/{id}",
83
+ "method": "PUT"
84
+ },
85
+ { "rel": "create",
86
+ "href": "comments",
87
+ "method": "POST"
88
+ }
89
+ ]
90
+ }
@@ -127,5 +127,85 @@
127
127
  "readonly":true,
128
128
  "type":"number"
129
129
  }
130
- }
130
+ },
131
+ "links":[
132
+ { "rel": "self",
133
+ "href": "credit_notes/{id}"
134
+ },
135
+ { "rel": "instances",
136
+ "href": "credit_notes",
137
+ "properties" : {
138
+ "page":{
139
+ "title" : "Page",
140
+ "description": "In paginated results set the page to look for",
141
+ "type":"number"
142
+ },
143
+ "filter[q]":{
144
+ "title" : "Search",
145
+ "description": "Search in title, number, addressfield",
146
+ "type":"string"
147
+ },
148
+ "filter[tags]":{
149
+ "title" : "Tags",
150
+ "description": "Filter by a space delimited list of tags",
151
+ "type":"string"
152
+ },
153
+ "filter[from]":{
154
+ "title" : "From date",
155
+ "description": "All objects with a date after the date"
156
+ },
157
+ "filter[to]":{
158
+ "title" : "To date",
159
+ "description": "All objects with date before the date"
160
+ },
161
+ "sort_by":{
162
+ "title" : "Sort by",
163
+ "description": "Sort the results by the given field => number",
164
+ "enum":['title', 'number', 'created_at', 'updated_at', 'client_id', 'price_total', 'price_tax', 'date', 'due_date'],
165
+ "type": 'string'
166
+ },
167
+ "sort":{
168
+ "title" : "Sort",
169
+ "enum":["ASC","DESC"],
170
+ "description": "Sort the results in ASC or DESC"
171
+ }
172
+ }
173
+ },
174
+ { "rel": "destroy",
175
+ "href": "credit_notes/{id}",
176
+ "method": "DELETE"
177
+ },
178
+ { "rel": "update",
179
+ "href": "credit_notes/{id}",
180
+ "method": "PUT"
181
+ },
182
+ { "rel": "create",
183
+ "href": "credit_notes",
184
+ "method": "POST"
185
+ },
186
+ { "rel": "attachments",
187
+ "href": "credit_notes/{id}/attachments"
188
+ },
189
+ { "rel": "comments",
190
+ "href": "credit_notes/{id}/comments"
191
+ },
192
+ { "rel": "emails",
193
+ "href": "credit_notes/{id}/emails"
194
+ },
195
+ { "rel": "print",
196
+ "href": "credit_notes/{id}/print",
197
+ "method": "POST",
198
+ "properties" : {
199
+ "template_id" : {
200
+ "title" : "PDF template used for printing",
201
+ "description": "UUID of a pdf template used to print the document. MUST be present",
202
+ "required":true
203
+ },
204
+ "base64" : {
205
+ "title" : "Return the created pdf base64 encoded",
206
+ "description": "If set the new pdf is returned inside the attachment JSON within 'base64' key. Leave empty to save traffic."
207
+ }
208
+ }
209
+ }
210
+ ]
131
211
  }
@@ -185,6 +185,12 @@
185
185
  { "rel": "attachments",
186
186
  "href": "estimates/{id}/attachments"
187
187
  },
188
+ { "rel": "comments",
189
+ "href": "estimates/{id}/comments"
190
+ },
191
+ { "rel": "emails",
192
+ "href": "estimates/{id}/emails"
193
+ },
188
194
  { "rel": "print",
189
195
  "href": "estimates/{id}/print",
190
196
  "method": "POST",
@@ -200,6 +200,15 @@
200
200
  { "rel": "attachments",
201
201
  "href": "invoices/{id}/attachments"
202
202
  },
203
+ { "rel": "payment_reminders",
204
+ "href": "invoices/{id}/payment_reminders"
205
+ },
206
+ { "rel": "comments",
207
+ "href": "invoices/{id}/comments"
208
+ },
209
+ { "rel": "emails",
210
+ "href": "invoices/{id}/emails"
211
+ },
203
212
  { "rel": "print",
204
213
  "href": "invoices/{id}/print",
205
214
  "method": "POST",
data/json/v1.0/order.json CHANGED
@@ -175,6 +175,12 @@
175
175
  { "rel": "attachments",
176
176
  "href": "orders/{id}/attachments"
177
177
  },
178
+ { "rel": "comments",
179
+ "href": "orders/{id}/comments"
180
+ },
181
+ { "rel": "emails",
182
+ "href": "orders/{id}/emails"
183
+ },
178
184
  { "rel": "print",
179
185
  "href": "orders/{id}/print",
180
186
  "method": "POST",
@@ -0,0 +1,90 @@
1
+ { "type":"object",
2
+ "title": "payment",
3
+ "description":"An payment in SK must always be related to an object.",
4
+ "properties": {
5
+ "id": {
6
+ "description": "uuid of the adress.",
7
+ "identity":true,
8
+ "readonly":true,
9
+ "type":"string"
10
+ },
11
+ "amount": {
12
+ "description": "The payment amount",
13
+ "required":true,
14
+ "type":"number"
15
+ },
16
+ "external_ref":{
17
+ "description": "Reference number f.ex. issued by the bank.",
18
+ "format":"date",
19
+ "type":"string"
20
+ },
21
+ "date":{
22
+ "description": "Date the payment was made.",
23
+ "required":true,
24
+ "format":"date",
25
+ "type":"string"
26
+ },
27
+ "method":{
28
+ "description": "How the payment was made.",
29
+ "enum":["cash","bank_transfer","credit_card","paypal","direct_debit","cheque"],
30
+ "type":"string"
31
+ },
32
+ "team_id":{
33
+ "description": "A team uuid. If set only the team and its parent teams can see the record.",
34
+ "type":"string"
35
+ },
36
+ "created_at": {
37
+ "description": "Date the object was created in SK. Never changes afterwards",
38
+ "format":"date-time",
39
+ "readonly":true,
40
+ "type":"string"
41
+ }
42
+ },
43
+ "links":[
44
+ { "rel": "self",
45
+ "href": "payments/{id}"
46
+ },
47
+ { "rel": "instances",
48
+ "href": "payments",
49
+ "properties" : {
50
+ "page":{
51
+ "title" : "Page",
52
+ "description": "In paginated results set the page to look for",
53
+ "type":"number"
54
+ },
55
+ "filter[q]":{
56
+ "title" : "Search",
57
+ "description": "Search in title, number, addressfield",
58
+ "type":"string"
59
+ },
60
+ "filter[from]":{
61
+ "title" : "From date",
62
+ "description": "All objects with a date after the date"
63
+ },
64
+ "filter[to]":{
65
+ "title" : "To date",
66
+ "description": "All objects with date before the date"
67
+ },
68
+ "sort_by":{
69
+ "title" : "Sort by",
70
+ "description": "Sort the results by the given field => number",
71
+ "enum":['amount','created_at', 'updated_at'],
72
+ "type": 'string'
73
+ },
74
+ "sort":{
75
+ "title" : "Sort",
76
+ "enum":["ASC","DESC"],
77
+ "description": "Sort the results in ASC or DESC"
78
+ }
79
+ }
80
+ },
81
+ { "rel": "destroy",
82
+ "href": "payments/{id}",
83
+ "method": "DELETE"
84
+ },
85
+ { "rel": "create",
86
+ "href": "payments",
87
+ "method": "POST"
88
+ }
89
+ ]
90
+ }
@@ -1,6 +1,6 @@
1
1
  { "type":"object",
2
2
  "title": "payment_reminder",
3
- "description": "An payment_reminder",
3
+ "description": "A payment reminder",
4
4
  "properties":{
5
5
  "id":{
6
6
  "description": "UUID assigned by SK",
@@ -8,17 +8,21 @@
8
8
  "readonly":true,
9
9
  "type":"string"
10
10
  },
11
+ "invoice_id":{
12
+ "description": "The invoice for the reminder. If set assumes all other fields are set to custom values, instead of filling them from the invoice. POSTing to invoices/:id/payment_reminders, automatically set this and all other fields.",
13
+ "type":"string"
14
+ },
11
15
  "address_field":{
12
- "description": "Receiver address, normally shown in envelope window. Defaults to client address_field if empty and client_id given.",
16
+ "description": "Receiver address, shown in envelope window. Defaults to invoice.client.address_field if created from invoice.",
13
17
  "type":"string"
14
18
  },
15
19
  "date":{
16
- "description": "Date the payment_reminder is issued. Automatically set when payment_reminder is opened. Required for non-draft documents.",
20
+ "description": "Date the payment_reminder is issued. Automatically set when created from invoice. Defaults to today.",
17
21
  "format":"date",
18
22
  "type":"string"
19
23
  },
20
24
  "due_days":{
21
- "description": "Used to calculate the due date of the payment_reminder. Useless if date and due date are present.",
25
+ "description": "Used to calculate the due date of the payment_reminder. Useless if date and due date are present. Taken from settings when created from invoice",
22
26
  "type":"integer"
23
27
  },
24
28
  "due_date":{
@@ -27,15 +31,15 @@
27
31
  "type":"string"
28
32
  },
29
33
  "title":{
30
- "description": "The headline of a document. Use SK placeholders to prevent exessive typing e.g. 'Your payment_reminder [number]'",
34
+ "description": "The headline of a document. Use SK placeholders to prevent exessive typing e.g. 'Your payment_reminder [number]'. Defaults to values from settings",
31
35
  "type":"string"
32
36
  },
33
37
  "notes_before":{
34
- "description": "Notes shown before the line items. Normaly contains salutation and other introductional information. SK placeholders can be used.",
38
+ "description": "Notes shown before the line items. Normaly contains salutation and other introductional information. SK placeholders can be used. Defaults to values from settings",
35
39
  "type":"string"
36
40
  },
37
41
  "notes_after":{
38
- "description": "Notes shown after the line items. Can contain information about payments, bank account or a thank-you message. SK placeholders can be used.",
42
+ "description": "Notes shown after the line items. Can contain information about payments, bank account or a thank-you message. SK placeholders can be used. Defaults to values from settings",
39
43
  "type":"string"
40
44
  },
41
45
  "tag_list": {
@@ -62,15 +66,14 @@
62
66
  },
63
67
  "client_id":{
64
68
  "description": "The clients uuid. New payment_reminders take the clients address field, due days and cash discount if those fields are not set.",
65
- "type":"string",
66
- "required":true
69
+ "type":"string"
67
70
  },
68
71
  "team_id":{
69
- "description": "A team uuid. If set only the team and its parent teams can see the record.",
72
+ "description": "A team uuid. If set, only the team and its parent teams can see the record. Defaults to team id from invoice",
70
73
  "type":"string"
71
74
  },
72
75
  "line_items":{
73
- "description": "Line items for the document",
76
+ "description": "Line items for the document. Defaults to invoice.gross_total and late fee values from settings",
74
77
  "type":"array",
75
78
  "properties":{"$ref":"./address.json#properties"}
76
79
  },
@@ -160,6 +163,9 @@
160
163
  { "rel": "attachments",
161
164
  "href": "payment_reminders/{id}/attachments"
162
165
  },
166
+ { "rel": "emails",
167
+ "href": "payment_reminders/{id}/emails"
168
+ },
163
169
  { "rel": "print",
164
170
  "href": "payment_reminders/{id}/print",
165
171
  "method": "POST",
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sk_api_schema}
8
- s.version = "0.0.5"
8
+ s.version = "0.0.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Georg Leciejewski"]
12
- s.date = %q{2011-01-16}
12
+ s.date = %q{2011-01-17}
13
13
  s.description = %q{SalesKing API JSON schema and utility methods}
14
14
  s.email = %q{gl@salesking.eu}
15
15
  s.extra_rdoc_files = [
@@ -22,11 +22,13 @@ Gem::Specification.new do |s|
22
22
  "json/v1.0/address.json",
23
23
  "json/v1.0/attachment.json",
24
24
  "json/v1.0/client.json",
25
+ "json/v1.0/comment.json",
25
26
  "json/v1.0/credit_note.json",
26
27
  "json/v1.0/estimate.json",
27
28
  "json/v1.0/invoice.json",
28
29
  "json/v1.0/line_item.json",
29
30
  "json/v1.0/order.json",
31
+ "json/v1.0/payment.json",
30
32
  "json/v1.0/payment_reminder.json",
31
33
  "json/v1.0/product.json",
32
34
  "json/v1.0/user.json",
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sk_api_schema
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 5
10
- version: 0.0.5
9
+ - 6
10
+ version: 0.0.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Georg Leciejewski
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-16 00:00:00 +01:00
18
+ date: 2011-01-17 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -61,11 +61,13 @@ files:
61
61
  - json/v1.0/address.json
62
62
  - json/v1.0/attachment.json
63
63
  - json/v1.0/client.json
64
+ - json/v1.0/comment.json
64
65
  - json/v1.0/credit_note.json
65
66
  - json/v1.0/estimate.json
66
67
  - json/v1.0/invoice.json
67
68
  - json/v1.0/line_item.json
68
69
  - json/v1.0/order.json
70
+ - json/v1.0/payment.json
69
71
  - json/v1.0/payment_reminder.json
70
72
  - json/v1.0/product.json
71
73
  - json/v1.0/user.json