decko 0.19.1 → 0.20.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/config/initializers/session_store.rb +1 -0
- data/lib/card_controller/response.rb +7 -4
- data/lib/decko/commands.rb +1 -1
- data/lib/decko/rest_spec_helper.rb +1 -0
- data/lib/decko/swagger/input_yml/layout.yml +14 -14
- data/lib/decko/swagger/output.yml +104 -73
- metadata +6 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b56b11720b70b74485415b9e281118737e4badaa8a0a5bd96b85382f2cd5f08f
|
|
4
|
+
data.tar.gz: a45cd70c209878b062bf0e202b066eb6e51deddf88f529e058401c55dc7e682d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ab76c77af818df10f4a00add8382f2dd631bc849146c86db004a3285b9aad4e557e518222b746b01e04160b49fe392c4945dfb7459848749b60e7d23906d7eab
|
|
7
|
+
data.tar.gz: cc14006108a5a0c5da298dd4dcae1b558aa57252d3247d3440e341df9254d3f401be28a1f1b740600d3eb338a3c5711e451a92d897daefc729343a79d003dbfa
|
|
@@ -100,13 +100,16 @@ class CardController
|
|
|
100
100
|
end
|
|
101
101
|
|
|
102
102
|
def format_name_from_params
|
|
103
|
-
|
|
103
|
+
rf = requested_format
|
|
104
|
+
explicit_file_format?(rf) ? :file : rf.to_sym
|
|
105
|
+
end
|
|
104
106
|
|
|
105
|
-
|
|
107
|
+
def explicit_file_format? rf
|
|
108
|
+
params[:explicit_file] || !Card::Format.registered.member?(rf)
|
|
106
109
|
end
|
|
107
110
|
|
|
108
|
-
def
|
|
109
|
-
params[:
|
|
111
|
+
def requested_format
|
|
112
|
+
params[:format].present? ? params[:format].to_s : request.format
|
|
110
113
|
end
|
|
111
114
|
end
|
|
112
115
|
end
|
data/lib/decko/commands.rb
CHANGED
|
@@ -10,7 +10,7 @@ module Decko
|
|
|
10
10
|
def map
|
|
11
11
|
@map ||= super.merge(
|
|
12
12
|
server: { desc: "start a local web server", group: :shark, alias: :s },
|
|
13
|
-
cucumber: { desc: "run cucumber tests", group: :monkey, alias: :cc, via: :call}
|
|
13
|
+
cucumber: { desc: "run cucumber tests", group: :monkey, alias: :cc, via: :call }
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
@@ -170,8 +170,8 @@ components:
|
|
|
170
170
|
request will be redirected. Eg, `success[mark]=mycardname`
|
|
171
171
|
|
|
172
172
|
schemas:
|
|
173
|
-
|
|
174
|
-
name:
|
|
173
|
+
nucleus_view:
|
|
174
|
+
name: nucleus view
|
|
175
175
|
type: object
|
|
176
176
|
properties:
|
|
177
177
|
id:
|
|
@@ -186,8 +186,8 @@ components:
|
|
|
186
186
|
codename:
|
|
187
187
|
type: string
|
|
188
188
|
|
|
189
|
-
|
|
190
|
-
name:
|
|
189
|
+
atom_view:
|
|
190
|
+
name: atom view
|
|
191
191
|
type: object
|
|
192
192
|
properties:
|
|
193
193
|
id:
|
|
@@ -204,7 +204,7 @@ components:
|
|
|
204
204
|
content:
|
|
205
205
|
type: string
|
|
206
206
|
|
|
207
|
-
|
|
207
|
+
molecule_view:
|
|
208
208
|
type: object
|
|
209
209
|
properties:
|
|
210
210
|
id:
|
|
@@ -214,7 +214,7 @@ components:
|
|
|
214
214
|
url:
|
|
215
215
|
type: string
|
|
216
216
|
type:
|
|
217
|
-
$ref: '#/components/schemas/
|
|
217
|
+
$ref: '#/components/schemas/nucleus_view'
|
|
218
218
|
codename:
|
|
219
219
|
type: string
|
|
220
220
|
content:
|
|
@@ -224,7 +224,7 @@ components:
|
|
|
224
224
|
items:
|
|
225
225
|
type: array
|
|
226
226
|
items:
|
|
227
|
-
$ref: '#/components/schemas/
|
|
227
|
+
$ref: '#/components/schemas/atom_view'
|
|
228
228
|
links:
|
|
229
229
|
type: array
|
|
230
230
|
items:
|
|
@@ -232,9 +232,9 @@ components:
|
|
|
232
232
|
ancestors:
|
|
233
233
|
type: array
|
|
234
234
|
items:
|
|
235
|
-
$ref: "#/components/schemas/
|
|
235
|
+
$ref: "#/components/schemas/atom_view"
|
|
236
236
|
|
|
237
|
-
|
|
237
|
+
errors_view:
|
|
238
238
|
type: object
|
|
239
239
|
properties:
|
|
240
240
|
error_status:
|
|
@@ -245,20 +245,20 @@ components:
|
|
|
245
245
|
type: string
|
|
246
246
|
|
|
247
247
|
responses:
|
|
248
|
-
200:
|
|
248
|
+
"200":
|
|
249
249
|
description: |-
|
|
250
250
|
Card data. Defaults to molecule view.
|
|
251
251
|
content:
|
|
252
252
|
application/json:
|
|
253
253
|
schema:
|
|
254
|
-
$ref: '#/components/schemas/
|
|
255
|
-
404:
|
|
254
|
+
$ref: '#/components/schemas/molecule_view'
|
|
255
|
+
"404":
|
|
256
256
|
description: "Could not find the card requested."
|
|
257
257
|
content:
|
|
258
258
|
application/json:
|
|
259
259
|
schema:
|
|
260
|
-
$ref: '#/components/schemas/
|
|
261
|
-
302:
|
|
260
|
+
$ref: '#/components/schemas/errors_view'
|
|
261
|
+
"302":
|
|
262
262
|
description: |-
|
|
263
263
|
Successful non-idempotent requests redirect to idempotent GET
|
|
264
264
|
requests.
|
|
@@ -1,105 +1,120 @@
|
|
|
1
|
-
---
|
|
2
1
|
openapi: 3.0.0
|
|
3
2
|
info:
|
|
4
|
-
description:
|
|
3
|
+
description: >-
|
|
5
4
|
Decko organizes data into "cards." Decko's API supports retrieval and alteration of card data.
|
|
5
|
+
|
|
6
6
|
To get the JSON responses as described below, do _any_ of the following:
|
|
7
7
|
1. Set the http Accept header to `application/json` in your request
|
|
8
8
|
2. Add `.json` to the url, or
|
|
9
9
|
3. Add `format=json` to the query params.
|
|
10
|
-
|
|
10
|
+
|
|
11
|
+
version: "0.8.0"
|
|
11
12
|
title: Decko API
|
|
12
13
|
contact:
|
|
13
14
|
email: info@decko.org
|
|
14
15
|
license:
|
|
15
16
|
name: GPL-2.0
|
|
16
|
-
url: https://opensource.org/licenses/GPL-2.0
|
|
17
|
+
url: 'https://opensource.org/licenses/GPL-2.0'
|
|
17
18
|
tags:
|
|
18
|
-
- name: create
|
|
19
|
-
- name: read
|
|
20
|
-
- name: update
|
|
21
|
-
- name: delete
|
|
19
|
+
- name: create
|
|
20
|
+
- name: read
|
|
21
|
+
- name: update
|
|
22
|
+
- name: delete
|
|
23
|
+
|
|
22
24
|
paths:
|
|
23
|
-
|
|
25
|
+
/{mark}:
|
|
24
26
|
get:
|
|
25
27
|
tags:
|
|
26
|
-
|
|
27
|
-
summary: get specified view of card
|
|
28
|
+
- Decko
|
|
29
|
+
summary: "get specified view of card"
|
|
28
30
|
description: |-
|
|
29
31
|
All read operations involve producing a _view_ of a card.
|
|
32
|
+
|
|
30
33
|
The request can come in several variants, eg\:
|
|
31
34
|
1. /{mark}?view={view} (standard)
|
|
32
35
|
1. /{mark}/{view}
|
|
33
36
|
1. /?mark={mark}&view={view}
|
|
37
|
+
|
|
34
38
|
parameters:
|
|
35
|
-
|
|
36
|
-
|
|
39
|
+
- $ref: '#/components/parameters/cardmark'
|
|
40
|
+
- $ref: '#/components/parameters/view'
|
|
37
41
|
responses:
|
|
38
42
|
200:
|
|
39
|
-
|
|
43
|
+
$ref: '#/components/responses/200'
|
|
40
44
|
404:
|
|
41
|
-
|
|
45
|
+
$ref: '#/components/responses/404'
|
|
42
46
|
put:
|
|
43
47
|
tags:
|
|
44
|
-
|
|
45
|
-
summary: update a card
|
|
48
|
+
- Decko
|
|
49
|
+
summary: "update a card"
|
|
50
|
+
description: |-
|
|
51
|
+
Update a card's name, type, and/or content. It's also possible to use
|
|
52
|
+
a GET request with /update/{mark}
|
|
46
53
|
parameters:
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
54
|
+
- $ref: '#/components/parameters/cardmark'
|
|
55
|
+
- $ref: '#/components/parameters/card'
|
|
56
|
+
- $ref: '#/components/parameters/success'
|
|
50
57
|
responses:
|
|
51
|
-
|
|
52
|
-
|
|
58
|
+
302:
|
|
59
|
+
$ref: '#/components/responses/302'
|
|
53
60
|
404:
|
|
54
|
-
|
|
61
|
+
$ref: '#/components/responses/404'
|
|
62
|
+
# TODO: add patch
|
|
55
63
|
delete:
|
|
56
64
|
tags:
|
|
57
|
-
|
|
58
|
-
summary: delete a card
|
|
65
|
+
- Decko
|
|
66
|
+
summary: "delete a card"
|
|
59
67
|
parameters:
|
|
60
|
-
|
|
61
|
-
|
|
68
|
+
- $ref: '#/components/parameters/cardmark'
|
|
69
|
+
- $ref: '#/components/parameters/success'
|
|
62
70
|
responses:
|
|
63
|
-
|
|
64
|
-
|
|
71
|
+
302:
|
|
72
|
+
$ref: '#/components/responses/302'
|
|
65
73
|
404:
|
|
66
|
-
|
|
67
|
-
|
|
74
|
+
$ref: '#/components/responses/404'
|
|
75
|
+
/:
|
|
68
76
|
post:
|
|
69
77
|
tags:
|
|
70
|
-
|
|
71
|
-
summary: create a card
|
|
78
|
+
- Decko
|
|
79
|
+
summary: "create a card"
|
|
80
|
+
description: |-
|
|
81
|
+
Create a card, setting its name, type, and/or content. It's also possible to use
|
|
82
|
+
a GET request with /card/create
|
|
72
83
|
parameters:
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
84
|
+
- $ref: '#/components/parameters/cardmark'
|
|
85
|
+
- $ref: '#/components/parameters/card'
|
|
86
|
+
- $ref: '#/components/parameters/success'
|
|
76
87
|
responses:
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
"$ref": "#/components/responses/404"
|
|
88
|
+
302:
|
|
89
|
+
$ref: '#/components/responses/302'
|
|
90
|
+
|
|
81
91
|
externalDocs:
|
|
82
92
|
description: Find out more about Decko
|
|
83
|
-
url: http://decko.org
|
|
93
|
+
url: 'http://decko.org'
|
|
84
94
|
servers:
|
|
85
|
-
- url: http://decko.org
|
|
95
|
+
- url: 'http://decko.org'
|
|
96
|
+
|
|
86
97
|
components:
|
|
87
98
|
parameters:
|
|
88
99
|
cardmark:
|
|
89
100
|
name: mark
|
|
90
101
|
in: path
|
|
91
102
|
required: true
|
|
92
|
-
description:
|
|
103
|
+
description: >-
|
|
93
104
|
A card's "mark" can be a name, an id, or a codename. Prefix ids with a tilde (~) and codenames with a colon (\:).
|
|
105
|
+
|
|
94
106
|
- **name:** Every card has a unique name. A name can have many variants. For example, `Berlin`, `berlin`, and `BERLIN!` all refer to the same card. The singularized, lower-cased, underscored variant of a name is called its "key."
|
|
107
|
+
|
|
95
108
|
- **id:** Every card stored in the database has a unique numerical id. _Note: some cards, called 'virtual cards', are not stored in the database and therefore do not have a numerical id. For example, the name `Menu+*refer to` identifies a virtual Search card that finds all the cards that refer to the `Menu` card.Because it is based on patterns that apply to all cards with names ending in `+*refer to`, there is no need to store each instance of that pattern._
|
|
109
|
+
|
|
96
110
|
- **codename:** Some cards also have special identifiers called "codenames". Card names can be edited by Decko users. If these names were used directly in code, then renaming would break that code. Codename identifiers solve this problem by providing persistent readable identifiers. Only cards referred to directly in code have codenames.
|
|
111
|
+
|
|
97
112
|
schema:
|
|
98
113
|
type: string
|
|
99
114
|
enum:
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
115
|
+
- '{name}'
|
|
116
|
+
- '~{id}'
|
|
117
|
+
- ':{codename}'
|
|
103
118
|
view:
|
|
104
119
|
name: view
|
|
105
120
|
in: query
|
|
@@ -107,18 +122,17 @@ components:
|
|
|
107
122
|
schema:
|
|
108
123
|
type: string
|
|
109
124
|
enum:
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
125
|
+
- nucleus
|
|
126
|
+
- atom
|
|
127
|
+
- molecule
|
|
128
|
+
- id
|
|
129
|
+
- codename
|
|
130
|
+
- name
|
|
131
|
+
- key
|
|
132
|
+
- content
|
|
133
|
+
- type
|
|
119
134
|
default: molecule
|
|
120
|
-
description: The view determines the contents of the response JSON. See the
|
|
121
|
-
corresponding schema for more details.
|
|
135
|
+
description: The view determines the contents of the response JSON. See the corresponding schema for more details.
|
|
122
136
|
card:
|
|
123
137
|
name: card
|
|
124
138
|
in: header
|
|
@@ -131,24 +145,32 @@ components:
|
|
|
131
145
|
type: string
|
|
132
146
|
content:
|
|
133
147
|
type: string
|
|
134
|
-
description:
|
|
135
|
-
The card parameter contains card field data, subcard field data.
|
|
148
|
+
description: >-
|
|
149
|
+
The card parameter contains card field data, subcard field data.
|
|
150
|
+
It follows RubyOnRails hash parameter pattern; for example, a card's name is represented as `card[name]=foobar`.
|
|
151
|
+
|
|
136
152
|
The most common fields are:
|
|
153
|
+
|
|
137
154
|
- **name:** Every card has a unique name.
|
|
155
|
+
|
|
138
156
|
- **type:** The card\'s type. Note that every card has a type, and the value of this field should be the type card\'s name. You can alternatively use **type_id** or **type_code** with the type card\s id
|
|
139
157
|
or mark respectively.
|
|
140
158
|
|
|
141
159
|
- **content:** The card\'s content (in string form)
|
|
160
|
+
|
|
142
161
|
- **subcards** A hash that contains information about additional cards to be handled in the same transaction. Each key is a card name, and each value is a card hash. Eg `cards[subcards][+color][content]=red`
|
|
162
|
+
|
|
143
163
|
success:
|
|
144
164
|
name: success
|
|
145
165
|
in: header
|
|
146
166
|
schema:
|
|
147
167
|
type: object
|
|
148
|
-
description:
|
|
168
|
+
description: >-
|
|
169
|
+
parameters hash to pass on to the GET request to which a successful
|
|
149
170
|
request will be redirected. Eg, `success[mark]=mycardname`
|
|
171
|
+
|
|
150
172
|
schemas:
|
|
151
|
-
|
|
173
|
+
nucleus_view:
|
|
152
174
|
name: nucleus view
|
|
153
175
|
type: object
|
|
154
176
|
properties:
|
|
@@ -163,7 +185,8 @@ components:
|
|
|
163
185
|
type: string
|
|
164
186
|
codename:
|
|
165
187
|
type: string
|
|
166
|
-
|
|
188
|
+
|
|
189
|
+
atom_view:
|
|
167
190
|
name: atom view
|
|
168
191
|
type: object
|
|
169
192
|
properties:
|
|
@@ -180,7 +203,8 @@ components:
|
|
|
180
203
|
type: string
|
|
181
204
|
content:
|
|
182
205
|
type: string
|
|
183
|
-
|
|
206
|
+
|
|
207
|
+
molecule_view:
|
|
184
208
|
type: object
|
|
185
209
|
properties:
|
|
186
210
|
id:
|
|
@@ -190,7 +214,7 @@ components:
|
|
|
190
214
|
url:
|
|
191
215
|
type: string
|
|
192
216
|
type:
|
|
193
|
-
|
|
217
|
+
$ref: '#/components/schemas/nucleus_view'
|
|
194
218
|
codename:
|
|
195
219
|
type: string
|
|
196
220
|
content:
|
|
@@ -200,7 +224,7 @@ components:
|
|
|
200
224
|
items:
|
|
201
225
|
type: array
|
|
202
226
|
items:
|
|
203
|
-
|
|
227
|
+
$ref: '#/components/schemas/atom_view'
|
|
204
228
|
links:
|
|
205
229
|
type: array
|
|
206
230
|
items:
|
|
@@ -208,8 +232,9 @@ components:
|
|
|
208
232
|
ancestors:
|
|
209
233
|
type: array
|
|
210
234
|
items:
|
|
211
|
-
|
|
212
|
-
|
|
235
|
+
$ref: "#/components/schemas/atom_view"
|
|
236
|
+
|
|
237
|
+
errors_view:
|
|
213
238
|
type: object
|
|
214
239
|
properties:
|
|
215
240
|
error_status:
|
|
@@ -218,16 +243,22 @@ components:
|
|
|
218
243
|
type: array
|
|
219
244
|
items:
|
|
220
245
|
type: string
|
|
246
|
+
|
|
221
247
|
responses:
|
|
222
|
-
200:
|
|
223
|
-
description:
|
|
248
|
+
"200":
|
|
249
|
+
description: |-
|
|
250
|
+
Card data. Defaults to molecule view.
|
|
224
251
|
content:
|
|
225
252
|
application/json:
|
|
226
253
|
schema:
|
|
227
|
-
|
|
228
|
-
404:
|
|
229
|
-
description: Could not find the card requested.
|
|
254
|
+
$ref: '#/components/schemas/molecule_view'
|
|
255
|
+
"404":
|
|
256
|
+
description: "Could not find the card requested."
|
|
230
257
|
content:
|
|
231
258
|
application/json:
|
|
232
259
|
schema:
|
|
233
|
-
|
|
260
|
+
$ref: '#/components/schemas/errors_view'
|
|
261
|
+
"302":
|
|
262
|
+
description: |-
|
|
263
|
+
Successful non-idempotent requests redirect to idempotent GET
|
|
264
|
+
requests.
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: decko
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.20.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ethan McCutchen
|
|
@@ -31,28 +31,28 @@ dependencies:
|
|
|
31
31
|
requirements:
|
|
32
32
|
- - '='
|
|
33
33
|
- !ruby/object:Gem::Version
|
|
34
|
-
version: 1.
|
|
34
|
+
version: 1.110.0
|
|
35
35
|
type: :runtime
|
|
36
36
|
prerelease: false
|
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
|
38
38
|
requirements:
|
|
39
39
|
- - '='
|
|
40
40
|
- !ruby/object:Gem::Version
|
|
41
|
-
version: 1.
|
|
41
|
+
version: 1.110.0
|
|
42
42
|
- !ruby/object:Gem::Dependency
|
|
43
43
|
name: card-mod-defaults
|
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
|
45
45
|
requirements:
|
|
46
46
|
- - '='
|
|
47
47
|
- !ruby/object:Gem::Version
|
|
48
|
-
version: 0.
|
|
48
|
+
version: 0.20.0
|
|
49
49
|
type: :runtime
|
|
50
50
|
prerelease: false
|
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
|
52
52
|
requirements:
|
|
53
53
|
- - '='
|
|
54
54
|
- !ruby/object:Gem::Version
|
|
55
|
-
version: 0.
|
|
55
|
+
version: 0.20.0
|
|
56
56
|
description: a wiki approach to structured data, dynamic interaction, and web design
|
|
57
57
|
email:
|
|
58
58
|
- info@decko.org
|
|
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
138
|
version: '0'
|
|
139
139
|
requirements: []
|
|
140
|
-
rubygems_version: 3.
|
|
140
|
+
rubygems_version: 3.7.2
|
|
141
141
|
specification_version: 4
|
|
142
142
|
summary: structured wiki web platform
|
|
143
143
|
test_files: []
|