ruby-lokalise-api 1.1.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -2
- data/README.md +172 -10
- data/lib/ruby-lokalise-api.rb +2 -0
- data/lib/ruby-lokalise-api/client.rb +18 -0
- data/lib/ruby-lokalise-api/collections/base.rb +11 -10
- data/lib/ruby-lokalise-api/collections/contributor.rb +1 -3
- data/lib/ruby-lokalise-api/collections/file.rb +1 -3
- data/lib/ruby-lokalise-api/collections/key.rb +8 -3
- data/lib/ruby-lokalise-api/collections/key_comment.rb +2 -3
- data/lib/ruby-lokalise-api/collections/project.rb +1 -3
- data/lib/ruby-lokalise-api/collections/project_comment.rb +1 -3
- data/lib/ruby-lokalise-api/collections/project_language.rb +1 -3
- data/lib/ruby-lokalise-api/collections/screenshot.rb +1 -3
- data/lib/ruby-lokalise-api/collections/snapshot.rb +1 -3
- data/lib/ruby-lokalise-api/collections/system_language.rb +1 -3
- data/lib/ruby-lokalise-api/collections/task.rb +1 -3
- data/lib/ruby-lokalise-api/collections/team.rb +1 -3
- data/lib/ruby-lokalise-api/collections/team_user.rb +1 -3
- data/lib/ruby-lokalise-api/collections/translation.rb +1 -3
- data/lib/ruby-lokalise-api/error.rb +2 -0
- data/lib/ruby-lokalise-api/request.rb +11 -3
- data/lib/ruby-lokalise-api/resources/base.rb +51 -41
- data/lib/ruby-lokalise-api/resources/contributor.rb +6 -4
- data/lib/ruby-lokalise-api/resources/file.rb +7 -12
- data/lib/ruby-lokalise-api/resources/key.rb +5 -4
- data/lib/ruby-lokalise-api/resources/key_comment.rb +6 -4
- data/lib/ruby-lokalise-api/resources/project.rb +10 -7
- data/lib/ruby-lokalise-api/resources/project_language.rb +5 -4
- data/lib/ruby-lokalise-api/resources/screenshot.rb +5 -4
- data/lib/ruby-lokalise-api/resources/snapshot.rb +10 -5
- data/lib/ruby-lokalise-api/resources/task.rb +5 -4
- data/lib/ruby-lokalise-api/resources/team_user.rb +6 -4
- data/lib/ruby-lokalise-api/resources/translation.rb +5 -4
- data/lib/ruby-lokalise-api/rest/comments.rb +6 -6
- data/lib/ruby-lokalise-api/rest/contributors.rb +6 -6
- data/lib/ruby-lokalise-api/rest/files.rb +3 -3
- data/lib/ruby-lokalise-api/rest/keys.rb +9 -9
- data/lib/ruby-lokalise-api/rest/languages.rb +7 -7
- data/lib/ruby-lokalise-api/rest/projects.rb +7 -7
- data/lib/ruby-lokalise-api/rest/screenshots.rb +6 -6
- data/lib/ruby-lokalise-api/rest/snapshots.rb +5 -5
- data/lib/ruby-lokalise-api/rest/tasks.rb +6 -6
- data/lib/ruby-lokalise-api/rest/team_users.rb +5 -5
- data/lib/ruby-lokalise-api/rest/teams.rb +1 -1
- data/lib/ruby-lokalise-api/rest/translations.rb +3 -3
- data/lib/ruby-lokalise-api/utils/attribute_helpers.rb +19 -5
- data/lib/ruby-lokalise-api/utils/endpoint_helpers.rb +12 -0
- data/lib/ruby-lokalise-api/utils/string_utils.rb +4 -0
- data/lib/ruby-lokalise-api/version.rb +1 -1
- data/ruby-lokalise-api.gemspec +1 -0
- data/spec/lib/ruby-lokalise-api/rest/comments_spec.rb +22 -5
- data/spec/lib/ruby-lokalise-api/rest/contributors_spec.rb +35 -2
- data/spec/lib/ruby-lokalise-api/rest/keys_spec.rb +55 -4
- data/spec/lib/ruby-lokalise-api/rest/languages_spec.rb +31 -2
- data/spec/lib/ruby-lokalise-api/rest/projects_spec.rb +36 -2
- data/spec/lib/ruby-lokalise-api/rest/screenshots_spec.rb +45 -8
- data/spec/lib/ruby-lokalise-api/rest/snapshots_spec.rb +25 -2
- data/spec/lib/ruby-lokalise-api/rest/tasks_spec.rb +38 -2
- data/spec/lib/ruby-lokalise-api/rest/team_users_spec.rb +25 -2
- data/spec/lib/ruby-lokalise-api/rest/translations_spec.rb +17 -3
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3917d088f403329a2daf516f1c7ae13ceb58c4afb598f77c7ce5fe71e8b80361
|
4
|
+
data.tar.gz: dd8a1a57656a0826841576c27a0b7d343dbab5b41ff87440f49ec1cc77816df3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cb7a76b7c937254b86cd6f5ec3398fe8623c44712cb465fc313eaedf1539e28d850e6e71d28282a8dc7131901918c06911fe72437e5aa053b98c7f7d6086f297
|
7
|
+
data.tar.gz: 22905df5254cd09103f79743cdb19bd6f6b2db8c081ffe528ae00f7f35cc4cafab9b3003cb8c04c6fe5ab11403722e228231c1636262921f531ffe342ada3525
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
##
|
3
|
+
## 2.0.0 (14-Dec-18)
|
4
|
+
|
5
|
+
* Major re-write of internal stuff
|
6
|
+
* Introduce method chaining
|
7
|
+
* Rename all `#delete` interface methods to `#destroy`
|
8
|
+
|
9
|
+
## 1.1.0 (11-Dec-18)
|
4
10
|
|
5
11
|
* Added methods to work with pagination (`next_page?`, `last_page?`, `prev_page?`, `first_page?`, `next_page`, `prev_page`)
|
6
12
|
|
@@ -10,4 +16,4 @@
|
|
10
16
|
|
11
17
|
## 1.0.0 (10-Dec-18)
|
12
18
|
|
13
|
-
* Initial release
|
19
|
+
* Initial release
|
data/README.md
CHANGED
@@ -75,6 +75,12 @@ To get access to raw data returned by the API, use `#raw_data`:
|
|
75
75
|
project.raw_data
|
76
76
|
```
|
77
77
|
|
78
|
+
Models support method chaining, meaning you can fetch a resource, update and delete it in one line:
|
79
|
+
|
80
|
+
```ruby
|
81
|
+
@client.project('123').update(name: 'New name').destroy
|
82
|
+
```
|
83
|
+
|
78
84
|
### Collections of resources and pagination
|
79
85
|
|
80
86
|
Fetching (or creating/updating) multiple objects will return a *collection* of objects. To get access to the actual data, use `#collection` method:
|
@@ -189,7 +195,7 @@ translations.prev_page # => will load the previous page while preserving the `li
|
|
189
195
|
[Doc](https://lokalise.co/api2docs/ruby/#transition-delete-a-comment-delete)
|
190
196
|
|
191
197
|
```ruby
|
192
|
-
@client.
|
198
|
+
@client.destroy_comment(project_id, key_id, comment_id) # Input:
|
193
199
|
## project_id (string, required)
|
194
200
|
## key_id (string, required)
|
195
201
|
## comment_id (string, required)
|
@@ -197,6 +203,13 @@ translations.prev_page # => will load the previous page while preserving the `li
|
|
197
203
|
## Hash with the project's id and "comment_deleted"=>true
|
198
204
|
```
|
199
205
|
|
206
|
+
Alternatively:
|
207
|
+
|
208
|
+
```ruby
|
209
|
+
comment = @client.comment('project_id', 'comment_id')
|
210
|
+
comment.destroy
|
211
|
+
```
|
212
|
+
|
200
213
|
### Contributors
|
201
214
|
|
202
215
|
#### Fetch contributors
|
@@ -263,18 +276,32 @@ translations.prev_page # => will load the previous page while preserving the `li
|
|
263
276
|
## Updated contributor
|
264
277
|
```
|
265
278
|
|
279
|
+
Alternatively:
|
280
|
+
|
281
|
+
```ruby
|
282
|
+
contributor = @client.contributor('project_id', 'contributor_id')
|
283
|
+
contributor.update(params)
|
284
|
+
```
|
285
|
+
|
266
286
|
#### Delete contributor
|
267
287
|
|
268
288
|
[Doc](https://lokalise.co/api2docs/ruby/#transition-delete-a-contributor-delete)
|
269
289
|
|
270
290
|
```ruby
|
271
|
-
@client.
|
291
|
+
@client.destroy_contributor(project_id, contributor_id) # Input:
|
272
292
|
## project_id (string, required)
|
273
293
|
## contributor_id (string, required)
|
274
294
|
# Output:
|
275
295
|
## Hash with the project's id and "contributor_deleted"=>true
|
276
296
|
```
|
277
297
|
|
298
|
+
Alternatively:
|
299
|
+
|
300
|
+
```ruby
|
301
|
+
contributor = @client.contributor('project_id', 'id')
|
302
|
+
contributor.destroy
|
303
|
+
```
|
304
|
+
|
278
305
|
### Files
|
279
306
|
|
280
307
|
[File attributes](https://lokalise.co/api2docs/ruby/#object-files)
|
@@ -384,6 +411,13 @@ Exports project files as a `.zip` bundle and makes them available to download (t
|
|
384
411
|
## Updated key
|
385
412
|
```
|
386
413
|
|
414
|
+
Alternatively:
|
415
|
+
|
416
|
+
```ruby
|
417
|
+
key = @client.key('project_id', 'key_id')
|
418
|
+
key.update(params)
|
419
|
+
```
|
420
|
+
|
387
421
|
#### Bulk update project keys
|
388
422
|
|
389
423
|
[Doc](https://lokalise.co/api2docs/ruby/#transition-bulk-update-put)
|
@@ -403,25 +437,39 @@ Exports project files as a `.zip` bundle and makes them available to download (t
|
|
403
437
|
[Doc](https://lokalise.co/api2docs/ruby/#transition-delete-a-key-delete)
|
404
438
|
|
405
439
|
```ruby
|
406
|
-
@client.
|
440
|
+
@client.destroy_key(project_id, key_id) # Input:
|
407
441
|
## project_id (string, required)
|
408
442
|
## key_id (string, required)
|
409
443
|
# Output:
|
410
444
|
## Hash with project_id and "key_removed" set to "true"
|
411
445
|
```
|
412
446
|
|
447
|
+
Alternatively:
|
448
|
+
|
449
|
+
```ruby
|
450
|
+
key = @client.key('project_id', 'key_id')
|
451
|
+
key.destroy
|
452
|
+
```
|
453
|
+
|
413
454
|
#### Bulk delete project keys
|
414
455
|
|
415
456
|
[Doc](https://lokalise.co/api2docs/ruby/#transition-delete-multiple-keys-delete)
|
416
457
|
|
417
458
|
```ruby
|
418
|
-
@client.
|
459
|
+
@client.destroy_keys(project_id, key_ids) # Input:
|
419
460
|
## project_id (string, required)
|
420
461
|
## key_ids (array, required)
|
421
462
|
# Output:
|
422
463
|
## Hash with project_id and "keys_removed" set to "true"
|
423
464
|
```
|
424
465
|
|
466
|
+
Alternatively:
|
467
|
+
|
468
|
+
```ruby
|
469
|
+
keys = @client.keys('project_id')
|
470
|
+
keys.destroy_all # => will effectively destroy all keys in the project
|
471
|
+
```
|
472
|
+
|
425
473
|
### Languages
|
426
474
|
|
427
475
|
[Language attributes](https://lokalise.co/api2docs/ruby/#object-languages)
|
@@ -495,18 +543,32 @@ Exports project files as a `.zip` bundle and makes them available to download (t
|
|
495
543
|
## Updated language
|
496
544
|
```
|
497
545
|
|
546
|
+
Alternatively:
|
547
|
+
|
548
|
+
```ruby
|
549
|
+
language = @client.language('project_id', 'lang_id')
|
550
|
+
language.update(params)
|
551
|
+
```
|
552
|
+
|
498
553
|
#### Delete project language
|
499
554
|
|
500
555
|
[Doc](https://lokalise.co/api2docs/ruby/#transition-delete-a-language-delete)
|
501
556
|
|
502
557
|
```ruby
|
503
|
-
@client.
|
558
|
+
@client.destroy_language(project_id, language_id) # Input:
|
504
559
|
## project_id (string, required)
|
505
560
|
## language_id (string, required)
|
506
561
|
# Output:
|
507
562
|
## Hash with the project's id and "language_deleted"=>true
|
508
563
|
```
|
509
564
|
|
565
|
+
Alternatively:
|
566
|
+
|
567
|
+
```ruby
|
568
|
+
language = @client.language('project_id', 'lang_id')
|
569
|
+
language.destroy
|
570
|
+
```
|
571
|
+
|
510
572
|
### Projects
|
511
573
|
|
512
574
|
[Project attributes](https://lokalise.co/api2docs/php/#object-projects)
|
@@ -564,6 +626,13 @@ Exports project files as a `.zip` bundle and makes them available to download (t
|
|
564
626
|
## An updated project
|
565
627
|
```
|
566
628
|
|
629
|
+
Alternatively:
|
630
|
+
|
631
|
+
```ruby
|
632
|
+
project = @client.project('project_id')
|
633
|
+
project.update(params)
|
634
|
+
```
|
635
|
+
|
567
636
|
#### Empty a project
|
568
637
|
|
569
638
|
[Doc](https://lokalise.co/api2docs/php/#transition-empty-a-project-put)
|
@@ -577,17 +646,31 @@ Deletes *all* keys and translations from the project.
|
|
577
646
|
## A project containing its id and a `keys_deleted => true` attribute
|
578
647
|
```
|
579
648
|
|
649
|
+
Alternatively:
|
650
|
+
|
651
|
+
```ruby
|
652
|
+
project = @client.project('project_id')
|
653
|
+
project.empty
|
654
|
+
```
|
655
|
+
|
580
656
|
#### Delete a project
|
581
657
|
|
582
658
|
[Doc](https://lokalise.co/api2docs/php/#transition-delete-a-project-delete)
|
583
659
|
|
584
660
|
```ruby
|
585
|
-
@client.
|
661
|
+
@client.destroy_project(project_id) # Input:
|
586
662
|
## project_id (string, required)
|
587
663
|
# Output:
|
588
664
|
## A project containing its id and a `project_deleted => true` attribute
|
589
665
|
```
|
590
666
|
|
667
|
+
Alternatively:
|
668
|
+
|
669
|
+
```ruby
|
670
|
+
project = @client.project('project_id')
|
671
|
+
project.destroy
|
672
|
+
```
|
673
|
+
|
591
674
|
### Screenshots
|
592
675
|
|
593
676
|
[Screenshot attributes](https://lokalise.co/api2docs/ruby/#resource-screenshots)
|
@@ -652,18 +735,32 @@ Deletes *all* keys and translations from the project.
|
|
652
735
|
## Updated screenshot
|
653
736
|
```
|
654
737
|
|
738
|
+
Alternatively:
|
739
|
+
|
740
|
+
```ruby
|
741
|
+
screenshot = @client.screenshot('project_id', 'screen_id')
|
742
|
+
screenshot.update(params)
|
743
|
+
```
|
744
|
+
|
655
745
|
#### Delete screenshot
|
656
746
|
|
657
747
|
[Doc](https://lokalise.co/api2docs/ruby/#transition-delete-a-screenshot-delete)
|
658
748
|
|
659
749
|
```ruby
|
660
|
-
@client.
|
750
|
+
@client.destroy_screenshot(project_id, screenshot_id) # Input:
|
661
751
|
## project_id (string, required)
|
662
752
|
## screenshot_id (string, required)
|
663
753
|
# Output:
|
664
754
|
## Hash with the project id and "screenshot_deleted" set to "true"
|
665
755
|
```
|
666
756
|
|
757
|
+
Alternatively:
|
758
|
+
|
759
|
+
```ruby
|
760
|
+
screenshot = @client.screenshot('project_id', 'screen_id')
|
761
|
+
screenshot.destroy
|
762
|
+
```
|
763
|
+
|
667
764
|
### Snapshots
|
668
765
|
|
669
766
|
[Snapshot attributes](https://lokalise.co/api2docs/ruby/#object-snapshots)
|
@@ -707,18 +804,32 @@ Deletes *all* keys and translations from the project.
|
|
707
804
|
## Information about the restored project from the specified snapshot
|
708
805
|
```
|
709
806
|
|
807
|
+
Alternatively:
|
808
|
+
|
809
|
+
```ruby
|
810
|
+
snapshot = @client.snapshots('project_id').first # you can't fetch a single snapshot
|
811
|
+
snapshot.restore
|
812
|
+
```
|
813
|
+
|
710
814
|
#### Delete snapshot
|
711
815
|
|
712
816
|
[Doc](https://lokalise.co/api2docs/ruby/#transition-delete-a-snapshot-delete)
|
713
817
|
|
714
818
|
```ruby
|
715
|
-
@client.
|
819
|
+
@client.destroy_snapshot(project_id, snapshot_id) # Input:
|
716
820
|
## project_id (string, required)
|
717
821
|
## snapshot_id (string, required)
|
718
822
|
# Output:
|
719
823
|
## Hash with the project id and "snapshot_deleted" set to "true"
|
720
824
|
```
|
721
825
|
|
826
|
+
Alternatively:
|
827
|
+
|
828
|
+
```ruby
|
829
|
+
snapshot = @client.snapshots('project_id').first # you can't fetch a single snapshot
|
830
|
+
snapshot.destroy
|
831
|
+
```
|
832
|
+
|
722
833
|
### Tasks
|
723
834
|
|
724
835
|
[Task attributes](https://lokalise.co/api2docs/ruby/#resource-tasks)
|
@@ -773,7 +884,29 @@ Deletes *all* keys and translations from the project.
|
|
773
884
|
[Doc](https://lokalise.co/api2docs/ruby/#transition-update-a-task-put)
|
774
885
|
|
775
886
|
```ruby
|
776
|
-
@client.
|
887
|
+
@client.update_task(project_id, task_id, params = {}) # Input:
|
888
|
+
## project_id (string, required)
|
889
|
+
## task_id (string or integer, required)
|
890
|
+
## params (hash)
|
891
|
+
### Find supported params at https://lokalise.co/api2docs/ruby/#transition-update-a-task-put
|
892
|
+
# Output:
|
893
|
+
## An updated task
|
894
|
+
|
895
|
+
```
|
896
|
+
|
897
|
+
Alternatively:
|
898
|
+
|
899
|
+
```ruby
|
900
|
+
task = @client.task('project_id', 'task_id')
|
901
|
+
task.update(params)
|
902
|
+
```
|
903
|
+
|
904
|
+
#### Delete task
|
905
|
+
|
906
|
+
[Doc](https://lokalise.co/api2docs/ruby/#transition-delete-a-task-delete)
|
907
|
+
|
908
|
+
```ruby
|
909
|
+
@client.destroy_task(project_id, task_id) # Input:
|
777
910
|
## project_id (string, required)
|
778
911
|
## task_id (string, required)
|
779
912
|
# Output:
|
@@ -781,6 +914,13 @@ Deletes *all* keys and translations from the project.
|
|
781
914
|
|
782
915
|
```
|
783
916
|
|
917
|
+
Alternatively:
|
918
|
+
|
919
|
+
```ruby
|
920
|
+
task = @client.task('project_id', 'task_id')
|
921
|
+
task.destroy
|
922
|
+
```
|
923
|
+
|
784
924
|
### Teams
|
785
925
|
|
786
926
|
#### Fetch teams
|
@@ -838,18 +978,32 @@ Deletes *all* keys and translations from the project.
|
|
838
978
|
## Updated team user
|
839
979
|
```
|
840
980
|
|
981
|
+
Alternatively:
|
982
|
+
|
983
|
+
```ruby
|
984
|
+
user = @client.team_user('team_id', 'user_id')
|
985
|
+
user.update(params)
|
986
|
+
```
|
987
|
+
|
841
988
|
#### Delete team user
|
842
989
|
|
843
990
|
[Doc](https://lokalise.co/api2docs/ruby/#transition-delete-a-team-user-delete)
|
844
991
|
|
845
992
|
```ruby
|
846
|
-
@client.
|
993
|
+
@client.destroy_team_user(team_id, user_id) # Input:
|
847
994
|
## team_id (string, required)
|
848
995
|
## user_id (string, required)
|
849
996
|
# Output:
|
850
997
|
## Hash with "team_id" and "team_user_deleted" set to "true"
|
851
998
|
```
|
852
999
|
|
1000
|
+
Alternatively:
|
1001
|
+
|
1002
|
+
```ruby
|
1003
|
+
user = @client.team_user('team_id', 'user_id')
|
1004
|
+
user.destroy
|
1005
|
+
```
|
1006
|
+
|
853
1007
|
### Translations
|
854
1008
|
|
855
1009
|
[Translation attributes](https://lokalise.co/api2docs/ruby/#resource-translations)
|
@@ -898,6 +1052,13 @@ Deletes *all* keys and translations from the project.
|
|
898
1052
|
## Updated translation
|
899
1053
|
```
|
900
1054
|
|
1055
|
+
Alternatively:
|
1056
|
+
|
1057
|
+
```ruby
|
1058
|
+
translation = @client.translation('project_id', 'translation_id')
|
1059
|
+
translation.update(params)
|
1060
|
+
```
|
1061
|
+
|
901
1062
|
## Additional Info
|
902
1063
|
|
903
1064
|
### Error handling
|
@@ -910,6 +1071,7 @@ The gem may raise the following custom exceptions:
|
|
910
1071
|
* `Lokalise::Error::Unauthorized` (`401`) - token is missing or incorrect
|
911
1072
|
* `Lokalise::Error::Forbidden` (`403`) - authenticated user does not have sufficient rights to perform the desired action
|
912
1073
|
* `Lokalise::Error::NotFound` (`404`) - the provided endpoint (resource) cannot be found
|
1074
|
+
* `Lokalise::Error::MethodNowAllowed` (`405`) - HTTP request with the provided verb is not supported by the endpoint
|
913
1075
|
* `Lokalise::Error::NotAcceptable` (`406`) - posted resource is malformed
|
914
1076
|
* `Lokalise::Error::Conflict` (`409`) - request conflicts with another request
|
915
1077
|
* `Lokalise::Error::Locked` (`423`) - your token is used simultaneously in multiple requests
|
data/lib/ruby-lokalise-api.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'faraday'
|
2
2
|
require 'multi_json'
|
3
3
|
require 'yaml'
|
4
|
+
require 'addressable'
|
4
5
|
|
5
6
|
require 'ruby-lokalise-api/version'
|
6
7
|
require 'ruby-lokalise-api/connection'
|
@@ -8,6 +9,7 @@ require 'ruby-lokalise-api/request'
|
|
8
9
|
require 'ruby-lokalise-api/error'
|
9
10
|
require 'ruby-lokalise-api/utils/string_utils'
|
10
11
|
require 'ruby-lokalise-api/utils/attribute_helpers'
|
12
|
+
require 'ruby-lokalise-api/utils/endpoint_helpers'
|
11
13
|
|
12
14
|
require 'ruby-lokalise-api/resources/base'
|
13
15
|
require 'ruby-lokalise-api/resources/project'
|
@@ -18,5 +18,23 @@ module Lokalise
|
|
18
18
|
def initialize(token)
|
19
19
|
@token = token
|
20
20
|
end
|
21
|
+
|
22
|
+
def construct_request(klass, method, endpoint_ids, params = {}, object_key = nil)
|
23
|
+
path = klass.endpoint(*endpoint_ids)
|
24
|
+
klass.send method, self, path, format_params(params, object_key)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Converts `params` to hash with arrays under the `object_key` key.
|
28
|
+
# Used in bulk operations
|
29
|
+
#
|
30
|
+
# @return [Hash]
|
31
|
+
def format_params(params, object_key)
|
32
|
+
return params unless object_key
|
33
|
+
|
34
|
+
params = [params] unless params.is_a?(Array)
|
35
|
+
Hash[object_key, params]
|
36
|
+
end
|
37
|
+
|
38
|
+
alias c_r construct_request
|
21
39
|
end
|
22
40
|
end
|
@@ -4,17 +4,17 @@ module Lokalise
|
|
4
4
|
extend Lokalise::Request
|
5
5
|
extend Lokalise::Utils::AttributeHelpers
|
6
6
|
include Lokalise::Utils::AttributeHelpers
|
7
|
+
extend Lokalise::Utils::EndpointHelpers
|
7
8
|
|
8
9
|
attr_reader :total_pages, :total_results, :results_per_page, :current_page, :collection,
|
9
|
-
:project_id, :team_id, :request_params, :client, :
|
10
|
+
:project_id, :team_id, :request_params, :client, :path
|
10
11
|
|
11
12
|
# Initializes a new collection based on the response
|
12
13
|
#
|
13
14
|
# @param response [Hash]
|
14
15
|
# @param params [Hash]
|
15
|
-
# @param ids [Array, Integer, String]
|
16
16
|
# @return [Lokalise::Collections::Base]
|
17
|
-
def initialize(response, params = {}
|
17
|
+
def initialize(response, params = {})
|
18
18
|
produce_collection_for response
|
19
19
|
populate_pagination_data_for response
|
20
20
|
# Project and team id may not be present in some cases
|
@@ -22,14 +22,14 @@ module Lokalise
|
|
22
22
|
@team_id = response['content']['team_id']
|
23
23
|
@request_params = params
|
24
24
|
@client = response['client']
|
25
|
-
@
|
25
|
+
@path = response['path']
|
26
26
|
end
|
27
27
|
|
28
28
|
class << self
|
29
29
|
# Performs a batch query fetching multiple records
|
30
|
-
def all(client, params = {}
|
31
|
-
new get(
|
32
|
-
params
|
30
|
+
def all(client, path, params = {})
|
31
|
+
new get(path, client, params),
|
32
|
+
params
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -76,8 +76,8 @@ module Lokalise
|
|
76
76
|
|
77
77
|
def fetch_page(page_num)
|
78
78
|
self.class.all @client,
|
79
|
-
@
|
80
|
-
|
79
|
+
@path,
|
80
|
+
@request_params.merge(page: page_num)
|
81
81
|
end
|
82
82
|
|
83
83
|
# Dynamically produces collection of resources based on the given response
|
@@ -90,7 +90,8 @@ module Lokalise
|
|
90
90
|
# We also preserve the `client` to be able to chain API methods later
|
91
91
|
@collection = response['content'][data_key_plural].collect do |raw_model|
|
92
92
|
Module.const_get("Lokalise::Resources::#{model_class}").new 'content' => raw_model,
|
93
|
-
'client' => response['client']
|
93
|
+
'client' => response['client'],
|
94
|
+
'base_path' => response['path']
|
94
95
|
end
|
95
96
|
end
|
96
97
|
end
|