sk_api_schema 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
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