decidim-api 0.27.10 → 0.28.0.rc4
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/app/controllers/decidim/api/queries_controller.rb +3 -3
- data/app/packs/entrypoints/decidim_api_docs.scss +312 -312
- data/app/packs/entrypoints/decidim_api_graphiql.js +3 -0
- data/app/packs/entrypoints/decidim_api_graphiql.scss +1 -3
- data/app/views/decidim/api/documentation/graphql_docs_template.html.erb +1 -1
- data/docs/usage.md +41 -45
- data/lib/decidim/api/engine.rb +5 -5
- data/lib/decidim/api/test/type_context.rb +4 -4
- data/lib/decidim/api/version.rb +1 -1
- data/lib/tasks/decidim_api_docs.rake +1 -1
- metadata +49 -31
- data/decidim-api.gemspec +0 -36
@@ -1,6 +1,9 @@
|
|
1
1
|
/* eslint-disable require-jsdoc */
|
2
2
|
|
3
3
|
import "entrypoints/decidim_api_graphiql.scss";
|
4
|
+
// Styles from node_modules/graphiql/graphiql.css
|
5
|
+
// It needs to be done in JS because postcss-import does not find files in node_modules/
|
6
|
+
import "graphiql/graphiql.css"
|
4
7
|
|
5
8
|
import React from "react";
|
6
9
|
import ReactDOM from "react-dom";
|
data/docs/usage.md
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
<!-- markdownlint-disable-file link-fragments -->
|
2
|
+
|
1
3
|
## About the GraphQL API
|
2
4
|
|
3
5
|
[Decidim](https://github.com/decidim/decidim) comes with an API that follows the [GraphQL](https://graphql.org/) specification. It has a comprehensive coverage of all the public content that can be found on the website.
|
@@ -14,11 +16,9 @@ Typically (although some particular installations may change that) you will find
|
|
14
16
|
|
15
17
|
The GraphQL format is a JSON formatted text that is specified in a query. Response is a JSON object as well. For details about specification check the official [GraphQL site](https://graphql.org/learn/).
|
16
18
|
|
17
|
-
Exercise caution when utilizing the output of this API, as it may include HTML that has not been escaped. Take particular care in handling this data, specially if you intend to render it on a webpage.
|
18
|
-
|
19
19
|
For instance, you can check the version of a Decidim installation by using `curl` in the terminal:
|
20
20
|
|
21
|
-
```
|
21
|
+
```bash
|
22
22
|
curl -sSH "Content-Type: application/json" \
|
23
23
|
-d '{"query": "{ decidim { version } }"}' \
|
24
24
|
https://www.decidim.barcelona/api/
|
@@ -28,7 +28,7 @@ Note that `Content-Type` needs to be specified.
|
|
28
28
|
|
29
29
|
The query can also be used in GraphiQL, in that case you can skip the `"query"` text:
|
30
30
|
|
31
|
-
```
|
31
|
+
```graphql
|
32
32
|
{
|
33
33
|
decidim {
|
34
34
|
version
|
@@ -68,7 +68,7 @@ Each "Type" is just a pre-defined structure with fields, or just an Scalar (Stri
|
|
68
68
|
|
69
69
|
For instance, to obtain *all the participatory processes in a Decidim installation published since January 2018* and order them by published date, we could execute the next query:
|
70
70
|
|
71
|
-
```
|
71
|
+
```graphql
|
72
72
|
{
|
73
73
|
participatoryProcesses(filter: {publishedSince: "2018-01-01"}, order: {publishedAt: "asc"}) {
|
74
74
|
slug
|
@@ -81,7 +81,7 @@ For instance, to obtain *all the participatory processes in a Decidim installati
|
|
81
81
|
|
82
82
|
Response should look like:
|
83
83
|
|
84
|
-
```
|
84
|
+
```json
|
85
85
|
{
|
86
86
|
"data": {
|
87
87
|
"participatoryProcesses": [
|
@@ -108,10 +108,10 @@ In the former query, each keyword represents a type, the words `publishedSince`,
|
|
108
108
|
|
109
109
|
The other keywords however, are objects representing certain entities:
|
110
110
|
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
111
|
+
* `participatoryProcesses` is a type that represents a collection of participatory spaces. It accepts arguments (`filter` and `order`), which are other object types as well. `slug` and `title` are the fields of the participatory process we are interested in, there are "Types" too.
|
112
|
+
* `filter` is a [ParticipatoryProcessFilter](#ParticipatoryProcessFilter)\* input type, it has several properties that allows us to refine our search. One of them is the `publishedSince` property with the initial date from which to list entries.
|
113
|
+
* `order` is a [ParticipatoryProcessSort](#ParticipatoryProcessSort) type, works the same way as the filter but with the goal of ordering the results.
|
114
|
+
* `title` is a [TranslatedField](#TranslatedField) type, which allows us to deal with multi-language fields.
|
115
115
|
|
116
116
|
Finally, note that the returned object is an array, each item of which is a representation of the object we requested.
|
117
117
|
|
@@ -119,20 +119,20 @@ Finally, note that the returned object is an array, each item of which is a repr
|
|
119
119
|
>
|
120
120
|
> There are two types of objects to filter and ordering collections in Decidim, they all work in a similar fashion. The type involved in filtering always have the suffix "Filter", for ordering it has the suffix "Sort".
|
121
121
|
>
|
122
|
-
> The types used to filter participatory spaces are: [ParticipatoryProcessFilter](#ParticipatoryProcessFilter), [AssemblyFilter](#AssemblyFilter),
|
122
|
+
> The types used to filter participatory spaces are: [ParticipatoryProcessFilter](#ParticipatoryProcessFilter), [AssemblyFilter](#AssemblyFilter), and so on.
|
123
123
|
>
|
124
124
|
> Other collections (or connections) may have their own filters (i.e. [ComponentFilter](#ComponentFilter)).
|
125
125
|
>
|
126
126
|
> Each filter has its own properties, you should check any object in particular for details. The way they work with multi-languages fields, however, is the same:
|
127
127
|
>
|
128
|
-
>
|
128
|
+
> We can say we have some searchable object with a multi-language field called *title*, and we have a filter that allows us to search through this field. How should it work? Should we look up content for every language in the field? or should we stick to a specific language?
|
129
129
|
>
|
130
|
-
> In our case, we
|
130
|
+
> In our case, we have decided to search only one particular language of a multi-language field but we let you choose which language to search.
|
131
131
|
> If no language is specified, the configured as default in the organization will be used. The keyword to specify the language is `locale`, and it should be provided in the 2 letters ISO 639-1 format (en = English, es = Spanish, ...).
|
132
132
|
>
|
133
133
|
> Example (this is not a real Decidim query):
|
134
134
|
>
|
135
|
-
> ```
|
135
|
+
> ```graphql
|
136
136
|
> some_collection(filter: { locale: "en", title: "ideas"}) {
|
137
137
|
> id
|
138
138
|
> }
|
@@ -144,7 +144,7 @@ Finally, note that the returned object is an array, each item of which is a repr
|
|
144
144
|
>
|
145
145
|
> Example of ordering alphabetically by the title content in French language:
|
146
146
|
>
|
147
|
-
> ```
|
147
|
+
> ```graphql
|
148
148
|
> some_collection(order: { locale: "en", title: "asc"}) {
|
149
149
|
> id
|
150
150
|
> }
|
@@ -156,13 +156,13 @@ Finally, note that the returned object is an array, each item of which is a repr
|
|
156
156
|
|
157
157
|
Decidim has 2 main types of objects through which content is provided. These are Participatory Spaces and Components.
|
158
158
|
|
159
|
-
A participatory space is the first level, currently there are 5 officially supported: *Participatory Processes*, *Assemblies*, *
|
159
|
+
A participatory space is the first level, currently there are 5 officially supported: *Participatory Processes*, *Assemblies*, *Conferences* and *Initiatives*. For each participatory process there will correspond a collection type and a "single item" type.
|
160
160
|
|
161
|
-
The previous example uses the collection type for participatory processes. You can try `assemblies`, `conferences`,
|
161
|
+
The previous example uses the collection type for participatory processes. You can try `assemblies`, `conferences`, or `initiatives` for the others. Note that each collection can implement their own filter and order types with different properties.
|
162
162
|
|
163
163
|
As an example for a single item query, you can run:
|
164
164
|
|
165
|
-
```
|
165
|
+
```graphql
|
166
166
|
{
|
167
167
|
participatoryProcess(slug: "consectetur-at") {
|
168
168
|
slug
|
@@ -175,7 +175,7 @@ As an example for a single item query, you can run:
|
|
175
175
|
|
176
176
|
And the response will be:
|
177
177
|
|
178
|
-
```
|
178
|
+
```json
|
179
179
|
{
|
180
180
|
"data": {
|
181
181
|
"participatoryProcess": {
|
@@ -188,7 +188,7 @@ And the response will be:
|
|
188
188
|
}
|
189
189
|
```
|
190
190
|
|
191
|
-
#### What
|
191
|
+
#### What is different?
|
192
192
|
|
193
193
|
First, note that we are querying, in singular, the type `participatoryProcess`, with a different parameter, `slug`\*, (a String). We can use the `id` instead if we know it.
|
194
194
|
|
@@ -208,7 +208,7 @@ Every participatory space may (and should) have some components. There are 9 off
|
|
208
208
|
|
209
209
|
If you know the `id`\* of a specific component you can obtain it by querying it directly:
|
210
210
|
|
211
|
-
```
|
211
|
+
```graphql
|
212
212
|
{
|
213
213
|
component(id:2) {
|
214
214
|
id
|
@@ -226,7 +226,7 @@ If you know the `id`\* of a specific component you can obtain it by querying it
|
|
226
226
|
|
227
227
|
Response:
|
228
228
|
|
229
|
-
```
|
229
|
+
```json
|
230
230
|
{
|
231
231
|
"data": {
|
232
232
|
"component": {
|
@@ -252,13 +252,13 @@ The process is analogue as what has been explained in the case of searching for
|
|
252
252
|
>
|
253
253
|
> In this case, 3257.
|
254
254
|
|
255
|
-
|
255
|
+
##### What about component's collections?
|
256
256
|
|
257
257
|
Glad you asked, component's collections cannot be retrieved directly, the are available *in the context* of a participatory space.
|
258
258
|
|
259
259
|
For instance, we can query all the components in an particular Assembly as follows:
|
260
260
|
|
261
|
-
```
|
261
|
+
```graphql
|
262
262
|
{
|
263
263
|
assembly(id: 3) {
|
264
264
|
components {
|
@@ -274,7 +274,7 @@ For instance, we can query all the components in an particular Assembly as follo
|
|
274
274
|
|
275
275
|
The response will be similar to:
|
276
276
|
|
277
|
-
```
|
277
|
+
```json
|
278
278
|
{
|
279
279
|
"data": {
|
280
280
|
"assembly": {
|
@@ -315,7 +315,7 @@ The response will be similar to:
|
|
315
315
|
|
316
316
|
We can also apply some filters by using the [ComponentFilter](#ComponentFilter) type. In the next query we would like to *find all the components with geolocation enabled in the assembly with id=2*:
|
317
317
|
|
318
|
-
```
|
318
|
+
```graphql
|
319
319
|
{
|
320
320
|
assembly(id: 2) {
|
321
321
|
components(filter: {withGeolocationEnabled: true}) {
|
@@ -331,7 +331,7 @@ We can also apply some filters by using the [ComponentFilter](#ComponentFilter)
|
|
331
331
|
|
332
332
|
The response:
|
333
333
|
|
334
|
-
```
|
334
|
+
```json
|
335
335
|
{
|
336
336
|
"data": {
|
337
337
|
"assembly": {
|
@@ -359,14 +359,13 @@ For instance, components in a participatory space are polymorphic, while the con
|
|
359
359
|
|
360
360
|
Another example are the case of linked resources, these are properties that may link objects of different nature between components or participatory spaces.
|
361
361
|
|
362
|
-
In a very simplified way (to know more please refer to the official guide), GraphQL polymorphism is handled through the operator `... on`. You
|
362
|
+
In a very simplified way (to know more please refer to the official guide), GraphQL polymorphism is handled through the operator `... on`. You will know when a field is polymorphic because the property `__typename`, which tells you the type of that particular object, will change accordingly.
|
363
363
|
|
364
|
-
In the previous examples we
|
364
|
+
In the previous examples we have queried for this property:
|
365
365
|
|
366
366
|
Response fragment:
|
367
367
|
|
368
|
-
```
|
369
|
-
...
|
368
|
+
```json
|
370
369
|
"components": [
|
371
370
|
{
|
372
371
|
"id": "38",
|
@@ -375,12 +374,11 @@ Response fragment:
|
|
375
374
|
},
|
376
375
|
"__typename": "Meetings"
|
377
376
|
}
|
378
|
-
...
|
379
377
|
```
|
380
378
|
|
381
379
|
So, if we want to access the rest of the properties in a polymorphic object, we should do it through the `... on` operator as follows:
|
382
380
|
|
383
|
-
```
|
381
|
+
```graphql
|
384
382
|
{
|
385
383
|
assembly(id: 2) {
|
386
384
|
components {
|
@@ -395,7 +393,7 @@ So, if we want to access the rest of the properties in a polymorphic object, we
|
|
395
393
|
|
396
394
|
Consider this query:
|
397
395
|
|
398
|
-
```
|
396
|
+
```graphql
|
399
397
|
{
|
400
398
|
assembly(id: 3) {
|
401
399
|
components(filter: {type: "Proposals"}) {
|
@@ -422,7 +420,7 @@ Consider this query:
|
|
422
420
|
|
423
421
|
The response:
|
424
422
|
|
425
|
-
```
|
423
|
+
```json
|
426
424
|
{
|
427
425
|
"data": {
|
428
426
|
"assembly": {
|
@@ -493,9 +491,9 @@ The response:
|
|
493
491
|
}
|
494
492
|
```
|
495
493
|
|
496
|
-
#### What
|
494
|
+
#### What is going on?
|
497
495
|
|
498
|
-
Until the `... on Proposals` line, there
|
496
|
+
Until the `... on Proposals` line, there is nothing new. We are requesting the *Assembly* participatory space identified by the `id=3`, then listing all its components with the type "Proposals". All the components share the *id* and *name* properties, so we can just add them at the query.
|
499
497
|
|
500
498
|
After that, we want content specific from the *Proposals* type. In order to do that we must tell the server that the content we will request shall only be executed if the types matches *Proposals*. We do that by wrapping the rest of the query in the `... on Proposals` clause.
|
501
499
|
|
@@ -503,14 +501,14 @@ The next line is just a property of the type *Proposals* which is a type of coll
|
|
503
501
|
|
504
502
|
Typically, a connection is used to paginate long results, for this purpose the results are not directly available but encapsulated inside the list *edges* in several *node* results. Also there are more arguments available in order to navigate between pages. This are the arguments:
|
505
503
|
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
504
|
+
* `first`: Returns the first *n* elements from the list
|
505
|
+
* `after`: Returns the elements in the list that come after the specified *cursor*
|
506
|
+
* `last`: Returns the last *n* elements from the list
|
507
|
+
* `before`: Returns the elements in the list that come before the specified *cursor*
|
510
508
|
|
511
509
|
Example:
|
512
510
|
|
513
|
-
```
|
511
|
+
```graphql
|
514
512
|
{
|
515
513
|
assembly(id: 3) {
|
516
514
|
components(filter: {type: "Proposals"}) {
|
@@ -543,7 +541,7 @@ Example:
|
|
543
541
|
|
544
542
|
Being the response:
|
545
543
|
|
546
|
-
```
|
544
|
+
```json
|
547
545
|
{
|
548
546
|
"data": {
|
549
547
|
"assembly": {
|
@@ -594,5 +592,3 @@ As you can see, a part from the *edges* list, you can access to the object *page
|
|
594
592
|
For more info on how connections work, you can check the official guide:
|
595
593
|
|
596
594
|
https://graphql.org/learn/pagination/
|
597
|
-
|
598
|
-
|
data/lib/decidim/api/engine.rb
CHANGED
@@ -23,7 +23,7 @@ module Decidim
|
|
23
23
|
class Engine < ::Rails::Engine
|
24
24
|
isolate_namespace Decidim::Api
|
25
25
|
|
26
|
-
initializer "
|
26
|
+
initializer "decidim_api.middleware" do |app|
|
27
27
|
app.config.middleware.insert_before 0, Rack::Cors do
|
28
28
|
allow do
|
29
29
|
origins "*"
|
@@ -32,12 +32,12 @@ module Decidim
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
-
initializer "
|
35
|
+
initializer "decidim_api.graphiql" do
|
36
36
|
Decidim::GraphiQL::Rails.config.tap do |config|
|
37
37
|
config.query_params = true
|
38
|
-
config.initial_query =
|
39
|
-
File.
|
40
|
-
)
|
38
|
+
config.initial_query = File.read(
|
39
|
+
File.join(__dir__, "graphiql-initial-query.txt")
|
40
|
+
).html_safe
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
@@ -23,12 +23,12 @@ shared_context "with a graphql class type" do
|
|
23
23
|
def execute_query(query, variables)
|
24
24
|
result = schema.execute(
|
25
25
|
query,
|
26
|
-
root_value
|
26
|
+
root_value:,
|
27
27
|
context: {
|
28
|
-
current_organization
|
29
|
-
current_user:
|
28
|
+
current_organization:,
|
29
|
+
current_user:
|
30
30
|
},
|
31
|
-
variables:
|
31
|
+
variables:
|
32
32
|
)
|
33
33
|
|
34
34
|
raise StandardError, result["errors"].map { |e| e["message"] }.join(", ") if result["errors"]
|
data/lib/decidim/api/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.28.0.rc4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josep Jaume Rey Peroy
|
@@ -10,56 +10,56 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2023-12-11 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
16
|
+
name: commonmarker
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
21
|
+
version: 0.23.0
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 0.23.9
|
22
25
|
type: :runtime
|
23
26
|
prerelease: false
|
24
27
|
version_requirements: !ruby/object:Gem::Requirement
|
25
28
|
requirements:
|
26
|
-
- -
|
29
|
+
- - "~>"
|
27
30
|
- !ruby/object:Gem::Version
|
28
|
-
version: 0.
|
31
|
+
version: 0.23.0
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 0.23.9
|
29
35
|
- !ruby/object:Gem::Dependency
|
30
36
|
name: graphql
|
31
37
|
requirement: !ruby/object:Gem::Requirement
|
32
38
|
requirements:
|
33
39
|
- - "~>"
|
34
40
|
- !ruby/object:Gem::Version
|
35
|
-
version:
|
36
|
-
- - "<"
|
37
|
-
- !ruby/object:Gem::Version
|
38
|
-
version: '1.13'
|
41
|
+
version: 2.0.0
|
39
42
|
type: :runtime
|
40
43
|
prerelease: false
|
41
44
|
version_requirements: !ruby/object:Gem::Requirement
|
42
45
|
requirements:
|
43
46
|
- - "~>"
|
44
47
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
46
|
-
- - "<"
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: '1.13'
|
48
|
+
version: 2.0.0
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
50
|
name: graphql-docs
|
51
51
|
requirement: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
55
|
+
version: 3.0.1
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
58
|
version_requirements: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
60
|
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
62
|
+
version: 3.0.1
|
63
63
|
- !ruby/object:Gem::Dependency
|
64
64
|
name: rack-cors
|
65
65
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,42 +80,56 @@ dependencies:
|
|
80
80
|
requirements:
|
81
81
|
- - '='
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: 0.
|
83
|
+
version: 0.28.0.rc4
|
84
84
|
type: :development
|
85
85
|
prerelease: false
|
86
86
|
version_requirements: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
88
|
- - '='
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: 0.
|
90
|
+
version: 0.28.0.rc4
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: decidim-core
|
93
|
+
requirement: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - '='
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: 0.28.0.rc4
|
98
|
+
type: :development
|
99
|
+
prerelease: false
|
100
|
+
version_requirements: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - '='
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 0.28.0.rc4
|
91
105
|
- !ruby/object:Gem::Dependency
|
92
106
|
name: decidim-dev
|
93
107
|
requirement: !ruby/object:Gem::Requirement
|
94
108
|
requirements:
|
95
109
|
- - '='
|
96
110
|
- !ruby/object:Gem::Version
|
97
|
-
version: 0.
|
111
|
+
version: 0.28.0.rc4
|
98
112
|
type: :development
|
99
113
|
prerelease: false
|
100
114
|
version_requirements: !ruby/object:Gem::Requirement
|
101
115
|
requirements:
|
102
116
|
- - '='
|
103
117
|
- !ruby/object:Gem::Version
|
104
|
-
version: 0.
|
118
|
+
version: 0.28.0.rc4
|
105
119
|
- !ruby/object:Gem::Dependency
|
106
120
|
name: decidim-participatory_processes
|
107
121
|
requirement: !ruby/object:Gem::Requirement
|
108
122
|
requirements:
|
109
123
|
- - '='
|
110
124
|
- !ruby/object:Gem::Version
|
111
|
-
version: 0.
|
125
|
+
version: 0.28.0.rc4
|
112
126
|
type: :development
|
113
127
|
prerelease: false
|
114
128
|
version_requirements: !ruby/object:Gem::Requirement
|
115
129
|
requirements:
|
116
130
|
- - '='
|
117
131
|
- !ruby/object:Gem::Version
|
118
|
-
version: 0.
|
132
|
+
version: 0.28.0.rc4
|
119
133
|
description: API engine for decidim
|
120
134
|
email:
|
121
135
|
- josepjaume@gmail.com
|
@@ -141,7 +155,6 @@ files:
|
|
141
155
|
- app/views/layouts/decidim/api/documentation.html.erb
|
142
156
|
- config/assets.rb
|
143
157
|
- config/routes.rb
|
144
|
-
- decidim-api.gemspec
|
145
158
|
- docs/usage.md
|
146
159
|
- lib/decidim/api.rb
|
147
160
|
- lib/decidim/api/engine.rb
|
@@ -166,26 +179,31 @@ files:
|
|
166
179
|
- lib/decidim/api/types/base_union.rb
|
167
180
|
- lib/decidim/api/version.rb
|
168
181
|
- lib/tasks/decidim_api_docs.rake
|
169
|
-
homepage: https://
|
182
|
+
homepage: https://decidim.org
|
170
183
|
licenses:
|
171
184
|
- AGPL-3.0
|
172
|
-
metadata:
|
185
|
+
metadata:
|
186
|
+
bug_tracker_uri: https://github.com/decidim/decidim/issues
|
187
|
+
documentation_uri: https://docs.decidim.org/
|
188
|
+
funding_uri: https://opencollective.com/decidim
|
189
|
+
homepage_uri: https://decidim.org
|
190
|
+
source_code_uri: https://github.com/decidim/decidim
|
173
191
|
post_install_message:
|
174
192
|
rdoc_options: []
|
175
193
|
require_paths:
|
176
194
|
- lib
|
177
195
|
required_ruby_version: !ruby/object:Gem::Requirement
|
178
196
|
requirements:
|
179
|
-
- - "
|
197
|
+
- - ">="
|
180
198
|
- !ruby/object:Gem::Version
|
181
|
-
version: 3.
|
199
|
+
version: '3.1'
|
182
200
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
183
201
|
requirements:
|
184
|
-
- - "
|
202
|
+
- - ">"
|
185
203
|
- !ruby/object:Gem::Version
|
186
|
-
version:
|
204
|
+
version: 1.3.1
|
187
205
|
requirements: []
|
188
|
-
rubygems_version: 3.
|
206
|
+
rubygems_version: 3.4.20
|
189
207
|
signing_key:
|
190
208
|
specification_version: 4
|
191
209
|
summary: Decidim API module
|
data/decidim-api.gemspec
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
$LOAD_PATH.push File.expand_path("lib", __dir__)
|
4
|
-
|
5
|
-
# Maintain your gem's version:
|
6
|
-
require "decidim/api/version"
|
7
|
-
|
8
|
-
# Describe your gem and declare its dependencies:
|
9
|
-
Gem::Specification.new do |s|
|
10
|
-
s.version = Decidim::Api.version
|
11
|
-
s.authors = ["Josep Jaume Rey Peroy", "Marc Riera Casals", "Oriol Gual Oliva"]
|
12
|
-
s.email = ["josepjaume@gmail.com", "mrc2407@gmail.com", "oriolgual@gmail.com"]
|
13
|
-
s.license = "AGPL-3.0"
|
14
|
-
s.homepage = "https://github.com/decidim/decidim"
|
15
|
-
s.required_ruby_version = "~> 3.0.0"
|
16
|
-
|
17
|
-
s.name = "decidim-api"
|
18
|
-
s.summary = "Decidim API module"
|
19
|
-
s.description = "API engine for decidim"
|
20
|
-
|
21
|
-
s.files = Dir.chdir(__dir__) do
|
22
|
-
`git ls-files -z`.split("\x0").select do |f|
|
23
|
-
(File.expand_path(f) == __FILE__) ||
|
24
|
-
f.start_with?(*%w(app/ config/ docs/ lib/ Rakefile README.md))
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
s.add_dependency "decidim-core", Decidim::Api.version
|
29
|
-
s.add_dependency "graphql", "~> 1.12", "< 1.13"
|
30
|
-
s.add_dependency "graphql-docs", "~> 2.1.0"
|
31
|
-
s.add_dependency "rack-cors", "~> 1.0"
|
32
|
-
|
33
|
-
s.add_development_dependency "decidim-comments", Decidim::Api.version
|
34
|
-
s.add_development_dependency "decidim-dev", Decidim::Api.version
|
35
|
-
s.add_development_dependency "decidim-participatory_processes", Decidim::Api.version
|
36
|
-
end
|