rail-locator-api 0.1.2 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7762a99a37ea7b47aa2ed65f3f6630241f517032406bc2429b67dee2c50427ca
|
4
|
+
data.tar.gz: 123e945e95a7e6bf9cb3b7ca4f9bbe75b04f3cf1696eb80b34210083beb4043d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c5380c51d1e5e98257a77082d5cef152dc252e58cd8a38b0bfbfc93f7ce1e29659f20283fbaa466f6b047b6c41b262c9bc1add14ed33d7761fedbd40e47da408
|
7
|
+
data.tar.gz: 81f3c66c05e639fa367397d0c0c451c89645e7bbf45b6c83ba932d8f26590370223259eff448700f1a39199e763c214a336bd293d15fcedb560383e69ebcb76e
|
data/README.markdown
CHANGED
@@ -43,9 +43,18 @@ API wrapper для RailLocator API v2
|
|
43
43
|
8. [Справочники](#references)
|
44
44
|
1. [Получение Координат Станции](#references_station_get)
|
45
45
|
2. [Получение Списка Станций С Краткой Информацией](#references_stations_get)
|
46
|
+
9. [Рассылки](#emailings)
|
47
|
+
1. [Создание Рассылки](#emailings_post)
|
46
48
|
|
47
49
|
# <a name="install"></a> Установка
|
48
50
|
|
51
|
+
Для авторизации по api key необходимо получить его [в личном кабинете локатора](https://rail-locator.com/app/api-keys)
|
52
|
+
или в телеграм боте [@RailLocatorApiBot](https://t.me/RailLocatorApiBot)
|
53
|
+
|
54
|
+
либо использовать другие методы авторизации:
|
55
|
+
|
56
|
+
`:keycloak, :api_key, :base64`
|
57
|
+
|
49
58
|
## Ruby
|
50
59
|
$ gem install rail-locator-api
|
51
60
|
## Rails
|
@@ -59,7 +68,6 @@ API wrapper для RailLocator API v2
|
|
59
68
|
|
60
69
|
rails g rail_locator_api:install
|
61
70
|
|
62
|
-
|
63
71
|
## <a name="using_rails"></a> Использование Rails
|
64
72
|
|
65
73
|
В файл `config/rail_locator_api.yml` вставьте ваши данные
|
@@ -69,19 +77,24 @@ API wrapper для RailLocator API v2
|
|
69
77
|
Сначала создайте экземпляр объекта `RailLocatorApi::Request`:
|
70
78
|
|
71
79
|
```ruby
|
72
|
-
locator = RailLocatorApi::Request.new(
|
80
|
+
locator = RailLocatorApi::Request.new(api_key: "***")
|
81
|
+
# или
|
82
|
+
locator = RailLocatorApi::Request.new(api_auth_method: :base64, api_user_email: "email@ctm.ru", api_user_password: "12345678")
|
73
83
|
```
|
74
84
|
|
75
|
-
Вы можете изменять `api_user_email`, `api_user_password`, `timeout`, `open_timeout`, `faraday_adapter`, `proxy`, `symbolize_keys`, `logger`, и `debug`:
|
85
|
+
Вы можете изменять `api_auth_method`, `api_key`, `api_user_email`, `api_user_password`, `timeout`, `open_timeout`, `faraday_adapter`, `proxy`, `symbolize_keys`, `logger`, и `debug`:
|
76
86
|
|
77
87
|
```ruby
|
78
|
-
RailLocatorApi::Request.api_key = "your_api_key"
|
79
|
-
RailLocatorApi::Request.api_user_email = "email@ctm.ru"
|
80
|
-
RailLocatorApi::Request.api_user_password = "12345678"
|
81
88
|
RailLocatorApi::Request.timeout = 15
|
82
89
|
RailLocatorApi::Request.open_timeout = 15
|
83
90
|
RailLocatorApi::Request.symbolize_keys = true
|
84
91
|
RailLocatorApi::Request.debug = false
|
92
|
+
|
93
|
+
RailLocatorApi::Request.api_key = "your_api_key"
|
94
|
+
# или
|
95
|
+
RailLocatorApi::Request.api_auth_method = :base64
|
96
|
+
RailLocatorApi::Request.api_user_email = "email@ctm.ru"
|
97
|
+
RailLocatorApi::Request.api_user_password = "12345678"
|
85
98
|
```
|
86
99
|
|
87
100
|
Либо в файле `config/initializers/rail_locator_api.rb` для Rails.
|
@@ -91,7 +104,7 @@ RailLocatorApi::Request.debug = false
|
|
91
104
|
Измените `debug: true` чтобы включить логирование в STDOUT.
|
92
105
|
|
93
106
|
```ruby
|
94
|
-
locator = RailLocatorApi::Request.new(api_key: "
|
107
|
+
locator = RailLocatorApi::Request.new(api_key: "***", debug: true)
|
95
108
|
```
|
96
109
|
|
97
110
|
### <a name="custom_logger"></a> Custom logger
|
@@ -99,7 +112,7 @@ locator = RailLocatorApi::Request.new(api_key: "your_api_key", debug: true)
|
|
99
112
|
`Logger.new` используется по умолчанию, но вы можете изменить на свой:
|
100
113
|
|
101
114
|
```ruby
|
102
|
-
locator = RailLocatorApi::Request.new(
|
115
|
+
locator = RailLocatorApi::Request.new(api_key: "***", debug: true, logger: MyLogger.new)
|
103
116
|
```
|
104
117
|
|
105
118
|
Или:
|
@@ -490,4 +503,40 @@ p response.body
|
|
490
503
|
```ruby
|
491
504
|
response = RailLocatorApi::Request.references.stations.retrieve(params: {station_code: "111"})
|
492
505
|
p response.body
|
493
|
-
```
|
506
|
+
```
|
507
|
+
## <a name="emailings"></a> Рассылки
|
508
|
+
### <a name="emailings_post"></a> [Создание Рассылки](http://soap.ctm.ru:8112/api/v2.0/redoc#tag/Rassylki/operation/__________________emailings_post)
|
509
|
+
|
510
|
+
```ruby
|
511
|
+
request = {
|
512
|
+
"title": "Название рассылки",
|
513
|
+
"data_source": "groups",
|
514
|
+
"data_ids": [
|
515
|
+
"1234",
|
516
|
+
"12345"
|
517
|
+
],
|
518
|
+
"recipients": [
|
519
|
+
"example@mail.ru"
|
520
|
+
],
|
521
|
+
"sending_days": [
|
522
|
+
"Sun",
|
523
|
+
"Mon",
|
524
|
+
"Tue",
|
525
|
+
"Wed",
|
526
|
+
"Thu",
|
527
|
+
"Fri",
|
528
|
+
"Sat"
|
529
|
+
],
|
530
|
+
"sending_times": [
|
531
|
+
"08:00:00",
|
532
|
+
"17:00:00"
|
533
|
+
],
|
534
|
+
"template_title": "Тема письма",
|
535
|
+
"template_content": "Текст письма",
|
536
|
+
"active_objects": true,
|
537
|
+
"language": "ru",
|
538
|
+
"user_note": "Примечание"
|
539
|
+
}
|
540
|
+
response = RailLocatorApi::Request.emailings.create(body: request)
|
541
|
+
p response.body
|
542
|
+
```
|
@@ -1,8 +1,12 @@
|
|
1
1
|
defaults: &defaults
|
2
|
-
API_KEY: "***"
|
3
2
|
API_ENDPOINT: "http://soap.ctm.ru:8112"
|
3
|
+
|
4
|
+
API_AUTH_METHOD: "api_key"
|
5
|
+
API_KEY: "***"
|
6
|
+
|
4
7
|
API_USER_EMAIL: ""
|
5
8
|
API_USER_PASSWORD: ""
|
9
|
+
|
6
10
|
KEYCLOAK_TOKEN_URL: "https://iam.ctm.ru/auth/realms/ctm/protocol/openid-connect/token"
|
7
11
|
KEYCLOAK_GRANT_TYPE: "password"
|
8
12
|
KEYCLOAK_CLIENT_ID: "client_id"
|
@@ -127,11 +127,14 @@ module RailLocatorApi
|
|
127
127
|
if [:api_key, :keycloak].include?(self.api_auth_method)
|
128
128
|
request.headers['Authorization'] = "Bearer #{RailLocatorApi::Request.access_token}"
|
129
129
|
end
|
130
|
+
if [:keycloak].include?(self.api_auth_method)
|
131
|
+
request.headers['X-API-KEY'] = "#{RailLocatorApi::Request.api_key}"
|
132
|
+
end
|
130
133
|
request.headers['User-Agent'] = "RailLocatorApi/#{RailLocatorApi::VERSION} Ruby gem"
|
131
134
|
if @request_builder.without_ratelimit
|
132
135
|
request.headers['X-Request-Without-Ratelimit'] = "1"
|
133
136
|
end
|
134
|
-
|
137
|
+
request.headers['Accept-Encoding'] = "gzip"
|
135
138
|
request.headers.merge!(headers) if headers
|
136
139
|
request.body = MultiJson.dump(body) if body
|
137
140
|
request.options.timeout = self.timeout
|