plate_api 1.1.0 → 1.1.1
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/Gemfile.lock +1 -1
- data/README.md +97 -5
- data/lib/plate_api/object_handler.rb +15 -5
- data/lib/plate_api/plate_object/base.rb +11 -3
- data/lib/plate_api/version.rb +1 -1
- data/lib/plate_api.rb +3 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b0c558f4ea358b0ddbca4fe9b389e67c1b981b2efaf2fa209e051d56200becb4
|
4
|
+
data.tar.gz: 9608c63f10f9e5d8d62b8a24d83665c4d80f6b40a97eb9aba466d11c80986505
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2f9481b9da9bc6f958761fdf81158e4ef4d19f89240a499bc754ebd7756e34707c6c8bea059a6c636e9ccb7d554b8eb15e14725bb95870b4bd8b2d1fb5a041b
|
7
|
+
data.tar.gz: af2b1fd5d3c4fd19fbdfee8574a41a86eb15ba97347c46f230135c5f82bb6edd1f4fa1dbf8d68671f85af46370091feffa5bf7e492882a3ae7c746d4faf43683
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
[](https://codeclimate.com/github/platehub/plate_api/test_coverage)
|
6
6
|
# PlateApi
|
7
7
|
|
8
|
-
Welcome to the PlateApi gem. This gem provides a wrapper to communicate with the Plate API, taking care of
|
8
|
+
Welcome to the PlateApi gem. This gem provides a wrapper to communicate with the [Plate API](https://api-doc.getplate.com), taking care of
|
9
9
|
authentication.
|
10
10
|
|
11
11
|
## Installation
|
@@ -24,16 +24,16 @@ Or install it yourself as:
|
|
24
24
|
|
25
25
|
$ gem install plate_api
|
26
26
|
|
27
|
-
## Getting started
|
27
|
+
## Getting started (TLDR;)
|
28
28
|
|
29
29
|
To get started with a simple connector:
|
30
30
|
|
31
31
|
```
|
32
32
|
# Initialze a connector
|
33
|
-
|
33
|
+
plate_api = PlateApi.new("{{public_key}}", "{{secret_key}}")
|
34
34
|
|
35
35
|
# Find information of a specific site with id == 822
|
36
|
-
site =
|
36
|
+
site = plate_api.sites.find(822)
|
37
37
|
|
38
38
|
# Find all posts in this site
|
39
39
|
posts = site.posts
|
@@ -47,9 +47,101 @@ element = elements.first
|
|
47
47
|
element.update(body: "<h2>My new text</h2>")
|
48
48
|
```
|
49
49
|
|
50
|
+
## Establishing a connection object
|
51
|
+
|
52
|
+
To create a connection object, representing a connection to the Plate API,
|
53
|
+
you need a public and a secret key. The [Plate API docs](https://api-doc.getplate.com) explain how to get such keys.
|
54
|
+
|
55
|
+
Given these two keys, a connection object can be established as follows:
|
56
|
+
|
57
|
+
```
|
58
|
+
plate_api = PlateApi.new("{{public_key}}", "{{secret_key}}")
|
59
|
+
```
|
60
|
+
|
61
|
+
The Plate API object can be used to find resources with a certain id:
|
62
|
+
|
63
|
+
## Retrieve a resource by id.
|
64
|
+
|
65
|
+
To retrieve a resource with a specific id, do the following: (to retrieve an element with `id=12`)
|
66
|
+
|
67
|
+
```
|
68
|
+
element = plate_api.elements.find(12)
|
69
|
+
```
|
70
|
+
|
71
|
+
## Create/Update/Delete resources given an object
|
72
|
+
|
73
|
+
To create a resource, you first retrieve the parent of the resource you want to create.
|
74
|
+
Second, you pass the create parameters in the `create_{{resource}}` method:
|
75
|
+
|
76
|
+
```
|
77
|
+
column = plate_api.columns.find(12)
|
78
|
+
element = column.create_element(content_type_id: 71, some_content_parameter: "Avé moi")
|
79
|
+
```
|
80
|
+
|
81
|
+
To update a resource:
|
82
|
+
|
83
|
+
```
|
84
|
+
element = plate_api.element.find(36)
|
85
|
+
element.update(some_content_parameter: "New content")
|
86
|
+
```
|
87
|
+
|
88
|
+
To delete a resource (be careful):
|
89
|
+
|
90
|
+
```
|
91
|
+
element = plate_api.element.find(223)
|
92
|
+
element.delete
|
93
|
+
```
|
94
|
+
|
95
|
+
## Create/Update/Delete resources directly:
|
96
|
+
|
97
|
+
It is also possible to use the `plate_api` instance to execute actions directly,
|
98
|
+
without first retrieving the object itself.
|
99
|
+
|
100
|
+
To create a resource:
|
101
|
+
|
102
|
+
```
|
103
|
+
column = plate_api.columns.find(12)
|
104
|
+
plate_api.elements.create(column, content_type_id: 71, some_content_parameter: "Avé moi")
|
105
|
+
```
|
106
|
+
|
107
|
+
To update a resource :
|
108
|
+
|
109
|
+
```
|
110
|
+
plate_api.elements.update(36, some_content_parameter: "New content")
|
111
|
+
```
|
112
|
+
|
113
|
+
To delete a resource:
|
114
|
+
|
115
|
+
```
|
116
|
+
plate_api.elements.delete(223)
|
117
|
+
```
|
118
|
+
|
119
|
+
## List child resources
|
120
|
+
|
121
|
+
To list all childs of a resource, for example to get all elements in a section:
|
122
|
+
|
123
|
+
```
|
124
|
+
section = plate_api.sections.find(50)
|
125
|
+
all_elements = section.elements
|
126
|
+
```
|
127
|
+
|
128
|
+
To pass some arguments to the request (like pagination, or to filter on content_type):
|
129
|
+
|
130
|
+
```
|
131
|
+
section = plate_api.sections.find(50)
|
132
|
+
all_elements = section.elements(content_type_id: 150, page: 12, per_page: 10)
|
133
|
+
```
|
134
|
+
|
135
|
+
To find the total amount of childs of a resource:
|
136
|
+
|
137
|
+
```
|
138
|
+
section = plate_api.sections.find(50)
|
139
|
+
count = section.elements_total_count
|
140
|
+
```
|
141
|
+
|
50
142
|
## Development
|
51
143
|
|
52
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run `
|
144
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rspec spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
53
145
|
|
54
146
|
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
55
147
|
|
@@ -17,7 +17,7 @@ module PlateApi
|
|
17
17
|
if result["data"]
|
18
18
|
return new_object(result["data"])
|
19
19
|
else
|
20
|
-
puts "No
|
20
|
+
puts "PlateApi: No success: #{result}"
|
21
21
|
return nil
|
22
22
|
end
|
23
23
|
end
|
@@ -30,7 +30,7 @@ module PlateApi
|
|
30
30
|
if result["data"]
|
31
31
|
return new_object(result["data"])
|
32
32
|
else
|
33
|
-
puts "No
|
33
|
+
puts "PlateApi: No success: #{result}"
|
34
34
|
return nil
|
35
35
|
end
|
36
36
|
end
|
@@ -50,7 +50,7 @@ module PlateApi
|
|
50
50
|
if result["data"]
|
51
51
|
return new_object(result["data"])
|
52
52
|
else
|
53
|
-
puts "No
|
53
|
+
puts "PlateApi: No success: #{result}"
|
54
54
|
return nil
|
55
55
|
end
|
56
56
|
end
|
@@ -61,7 +61,7 @@ module PlateApi
|
|
61
61
|
if result["data"]
|
62
62
|
return new_object(result["data"])
|
63
63
|
else
|
64
|
-
puts "No
|
64
|
+
puts "PlateApi: No success: #{result}"
|
65
65
|
return nil
|
66
66
|
end
|
67
67
|
end
|
@@ -74,7 +74,17 @@ module PlateApi
|
|
74
74
|
if result["data"]
|
75
75
|
return result["data"].map{|x| new_object(x)}
|
76
76
|
else
|
77
|
-
puts "No
|
77
|
+
puts "PlateApi: No success: #{result}"
|
78
|
+
return nil
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def index_total_count(parent)
|
83
|
+
result = @api_connector.get(collection_path(parent.class, parent.id), per_page: 1)
|
84
|
+
if result["meta"]
|
85
|
+
return result["meta"]["pagination"]["total_records"]
|
86
|
+
else
|
87
|
+
puts "PlateApi: No success: #{result}"
|
78
88
|
return nil
|
79
89
|
end
|
80
90
|
end
|
@@ -88,13 +88,21 @@ module PlateApi::PlateObject
|
|
88
88
|
|
89
89
|
def self.has_many(plural_name, singular_name, klass, define_create_method=false)
|
90
90
|
HasManyRelations[plural_name.to_s] = klass
|
91
|
-
|
91
|
+
define_has_many_methods(plural_name, klass)
|
92
92
|
define_create_method(singular_name, klass) if define_create_method
|
93
93
|
end
|
94
94
|
|
95
|
-
def self.
|
95
|
+
def self.define_has_many_methods(plural_name, klass)
|
96
96
|
define_method(plural_name.to_s) do |params={}|
|
97
|
-
@object_handler.api_connector.handler(
|
97
|
+
@object_handler.api_connector.handler(
|
98
|
+
Object.const_get(klass)
|
99
|
+
).index(self.class, @id, params)
|
100
|
+
end
|
101
|
+
|
102
|
+
define_method("#{plural_name}_total_count") do
|
103
|
+
@object_handler.api_connector.handler(
|
104
|
+
Object.const_get(klass)
|
105
|
+
).index_total_count(self)
|
98
106
|
end
|
99
107
|
end
|
100
108
|
|
data/lib/plate_api/version.rb
CHANGED
data/lib/plate_api.rb
CHANGED