ruby-lokalise-api 1.1.0 → 2.0.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/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
|