pattana 0.1.1 → 0.1.3
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/pattana/api/v1/base_controller.rb +12 -0
- data/app/controllers/pattana/api/v1/cities_controller.rb +62 -0
- data/app/controllers/pattana/api/v1/countries_controller.rb +18 -0
- data/app/controllers/pattana/api/v1/docs_base_controller.rb +21 -0
- data/app/controllers/pattana/api/v1/docs_controller.rb +105 -0
- data/app/controllers/pattana/api/v1/regions_controller.rb +27 -0
- data/app/models/city.rb +13 -0
- data/app/models/country.rb +13 -0
- data/app/models/region.rb +13 -0
- data/app/views/kuppayam/api/docs/_navigation.html.erb +31 -0
- data/app/views/pattana/api/v1/docs/cities_in_a_country/_neg_case_1.html.erb +27 -0
- data/app/views/pattana/api/v1/docs/cities_in_a_country/_pos_case_1.html.erb +63 -0
- data/app/views/pattana/api/v1/docs/cities_in_a_region/_neg_case_1.html.erb +27 -0
- data/app/views/pattana/api/v1/docs/cities_in_a_region/_neg_case_2.html.erb +27 -0
- data/app/views/pattana/api/v1/docs/cities_in_a_region/_neg_case_3.html.erb +27 -0
- data/app/views/pattana/api/v1/docs/cities_in_a_region/_pos_case_1.html.erb +63 -0
- data/app/views/pattana/api/v1/docs/cities_in_a_region/_pos_case_2.html.erb +63 -0
- data/app/views/pattana/api/v1/docs/countries/_pos_case_1.html.erb +90 -0
- data/app/views/pattana/api/v1/docs/regions/_neg_case_1.html.erb +27 -0
- data/app/views/pattana/api/v1/docs/regions/_pos_case_1.html.erb +54 -0
- data/config/locales/pattana/api.ar.yml +16 -0
- data/config/locales/pattana/api.en.yml +16 -0
- data/config/routes.rb +35 -0
- data/lib/pattana/version.rb +1 -1
- metadata +23 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 468d2c5b68afe569337545a39e80ec8d9d6f1160
|
4
|
+
data.tar.gz: 1ec9df908fd6cff6318c9d6306995621a1119dce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07daba96fbfdd05189785d0579c0cf571e0888af8251f92d4bdc295db7536dccbc085b35c02115f33aee801b99e26b90edaf1d5d4a08f6f1be50951ef09d4c72
|
7
|
+
data.tar.gz: 9fc208a79e6d001d26da026cd262b9b52439148c4a67fab280a7fb685f79a05bf66285d28c2ade6772ad2f7dfd445fa7758c056e445734e21d6f0e08da62a669
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module Pattana
|
2
|
+
module Api
|
3
|
+
module V1
|
4
|
+
class CitiesController < BaseController
|
5
|
+
|
6
|
+
def cities_in_a_country
|
7
|
+
proc_code = Proc.new do
|
8
|
+
@country = Country.find_by_id(params[:country_id])
|
9
|
+
if @country
|
10
|
+
@cities = @country.cities.where("show_in_api is true").order("name ASC").all
|
11
|
+
@success = true
|
12
|
+
@data = @cities
|
13
|
+
else
|
14
|
+
@success = false
|
15
|
+
@errors = {
|
16
|
+
heading: I18n.translate("api.cities.country_not_found.heading"),
|
17
|
+
message: I18n.translate("api.cities.country_not_found.message")
|
18
|
+
}
|
19
|
+
end
|
20
|
+
end
|
21
|
+
render_json_response(proc_code)
|
22
|
+
end
|
23
|
+
|
24
|
+
def cities_in_a_region
|
25
|
+
proc_code = Proc.new do
|
26
|
+
@region = Region.find_by_id(params[:region_id])
|
27
|
+
if @region
|
28
|
+
@country = Country.find_by_id(params[:country_id])
|
29
|
+
if @country
|
30
|
+
if @region.country_id == @country.id
|
31
|
+
@cities = @region.cities.where("show_in_api is true").order("name ASC").all
|
32
|
+
@success = true
|
33
|
+
@data = @cities
|
34
|
+
else
|
35
|
+
@success = false
|
36
|
+
@errors = {
|
37
|
+
heading: I18n.translate("api.cities.region_id_not_matching.heading"),
|
38
|
+
message: I18n.translate("api.cities.region_id_not_matching.message")
|
39
|
+
}
|
40
|
+
end
|
41
|
+
else
|
42
|
+
@success = false
|
43
|
+
@errors = {
|
44
|
+
heading: I18n.translate("api.cities.country_not_found.heading"),
|
45
|
+
message: I18n.translate("api.cities.country_not_found.message")
|
46
|
+
}
|
47
|
+
end
|
48
|
+
else
|
49
|
+
@success = false
|
50
|
+
@errors = {
|
51
|
+
heading: I18n.translate("api.cities.region_not_found.heading"),
|
52
|
+
message: I18n.translate("api.cities.region_not_found.message")
|
53
|
+
}
|
54
|
+
end
|
55
|
+
end
|
56
|
+
render_json_response(proc_code)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Pattana
|
2
|
+
module Api
|
3
|
+
module V1
|
4
|
+
class CountriesController < BaseController
|
5
|
+
|
6
|
+
def index
|
7
|
+
proc_code = Proc.new do
|
8
|
+
@countries = Country.where("show_in_api is true").order("name ASC").all
|
9
|
+
@success = true
|
10
|
+
@data = @countries
|
11
|
+
end
|
12
|
+
render_json_response(proc_code)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Pattana
|
2
|
+
module Api
|
3
|
+
module V1
|
4
|
+
class DocsBaseController < Kuppayam::BaseController
|
5
|
+
|
6
|
+
layout 'kuppayam/docs'
|
7
|
+
|
8
|
+
private
|
9
|
+
|
10
|
+
def breadcrumbs_configuration
|
11
|
+
{
|
12
|
+
heading: "Pattana - API Documentation",
|
13
|
+
description: "A brief documentation of all APIs implemented in the gem Pattana with input and output details and examples",
|
14
|
+
links: []
|
15
|
+
}
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
module Pattana
|
2
|
+
module Api
|
3
|
+
module V1
|
4
|
+
class DocsController < Pattana::Api::V1::DocsBaseController
|
5
|
+
|
6
|
+
layout 'kuppayam/docs'
|
7
|
+
|
8
|
+
def countries
|
9
|
+
set_title("Countries API")
|
10
|
+
@request_type = "GET"
|
11
|
+
@end_point = "/api/v1/countries"
|
12
|
+
@description = "This API will return all the countries with other details like dialing prefix and ISO codes."
|
13
|
+
|
14
|
+
@info = "It will return only those countries who has show_in_api set true"
|
15
|
+
|
16
|
+
@input_headers = {
|
17
|
+
"Content-Type" => { value: "application/json", description: "The MIME media type for JSON text is application/json. This is to make sure that a valid json is returned. The default encoding is UTF-8. " }
|
18
|
+
}
|
19
|
+
|
20
|
+
@example_path = "pattana/api/v1/docs/"
|
21
|
+
@examples = ["pos_case_1"]
|
22
|
+
|
23
|
+
set_nav("docs/countries")
|
24
|
+
|
25
|
+
render 'kuppayam/api/docs/show'
|
26
|
+
end
|
27
|
+
|
28
|
+
def regions
|
29
|
+
set_title("Regions API")
|
30
|
+
@request_type = "GET"
|
31
|
+
@end_point = "/api/v1/:country_id/regions"
|
32
|
+
@description = "This API will return all the regions in a particular country. The Country ID has to be passed."
|
33
|
+
|
34
|
+
@info = "It will return only those regions who has show_in_api set true"
|
35
|
+
|
36
|
+
@input_headers = {
|
37
|
+
"Content-Type" => { value: "application/json", description: "The MIME media type for JSON text is application/json. This is to make sure that a valid json is returned. The default encoding is UTF-8. " }
|
38
|
+
}
|
39
|
+
|
40
|
+
@input_params = {
|
41
|
+
country_id: { mandatory: true, description: "The Country ID. You will get it from the Countries API", example: "for e.g: Country Id for U.A.E is 235 and that of India is 100", default: "" }
|
42
|
+
}
|
43
|
+
|
44
|
+
@example_path = "pattana/api/v1/docs/"
|
45
|
+
@examples = ["pos_case_1", "neg_case_1"]
|
46
|
+
|
47
|
+
set_nav("docs/regions")
|
48
|
+
|
49
|
+
render 'kuppayam/api/docs/show'
|
50
|
+
end
|
51
|
+
|
52
|
+
def cities_in_a_country
|
53
|
+
set_title("Cities API (in a country)")
|
54
|
+
@request_type = "GET"
|
55
|
+
@end_point = "/api/v1/:country_id/cities"
|
56
|
+
@description = "This API will return all the cities in a particular country. The Country ID has to be passed"
|
57
|
+
|
58
|
+
@info = "It will return only those cities who has show_in_api set true"
|
59
|
+
|
60
|
+
@input_headers = {
|
61
|
+
"Content-Type" => { value: "application/json", description: "The MIME media type for JSON text is application/json. This is to make sure that a valid json is returned. The default encoding is UTF-8. " }
|
62
|
+
}
|
63
|
+
|
64
|
+
@input_params = {
|
65
|
+
country_id: { mandatory: true, description: "The Country ID. You will get it from the Countries API", example: "for e.g: Country Id for U.A.E is 235 and that of India is 100", default: "" }
|
66
|
+
}
|
67
|
+
|
68
|
+
@example_path = "pattana/api/v1/docs/"
|
69
|
+
@examples = ["pos_case_1", "neg_case_1"]
|
70
|
+
|
71
|
+
set_nav("docs/cities_in_a_country")
|
72
|
+
|
73
|
+
render 'kuppayam/api/docs/show'
|
74
|
+
end
|
75
|
+
|
76
|
+
def cities_in_a_region
|
77
|
+
set_title("Cities API (in a region)")
|
78
|
+
@request_type = "GET"
|
79
|
+
@end_point = "/api/v1/:country_id/:region_id/cities"
|
80
|
+
@description = "This API will return all the cities in a particular region. The Country ID & Region ID has to be passed"
|
81
|
+
|
82
|
+
@info = "It will return only those cities who has show_in_api set true"
|
83
|
+
@warning = "Make sure that the region (id) belongs to the country (id). Use the countries and regions API to get real id"
|
84
|
+
|
85
|
+
@input_headers = {
|
86
|
+
"Content-Type" => { value: "application/json", description: "The MIME media type for JSON text is application/json. This is to make sure that a valid json is returned. The default encoding is UTF-8. " }
|
87
|
+
}
|
88
|
+
|
89
|
+
@input_params = {
|
90
|
+
country_id: { mandatory: true, description: "The Country ID. You will get it from the Countries API", example: "for e.g: Country Id for U.A.E is 235 and that of India is 100", default: "" },
|
91
|
+
region_id: { mandatory: true, description: "The Region ID. You will get it from the Regions API", example: "for e.g: Country Id for India is 100 and Region ID for Kerala is 1314", default: "" }
|
92
|
+
}
|
93
|
+
|
94
|
+
@example_path = "pattana/api/v1/docs/"
|
95
|
+
@examples = ["pos_case_1", "pos_case_2", "neg_case_1", "neg_case_2", "neg_case_3"]
|
96
|
+
|
97
|
+
set_nav("docs/cities_in_a_region")
|
98
|
+
|
99
|
+
render 'kuppayam/api/docs/show'
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Pattana
|
2
|
+
module Api
|
3
|
+
module V1
|
4
|
+
class RegionsController < BaseController
|
5
|
+
|
6
|
+
def index
|
7
|
+
proc_code = Proc.new do
|
8
|
+
@country = Country.find_by_id(params[:country_id])
|
9
|
+
if @country
|
10
|
+
@regions = @country.regions.where("show_in_api is true").order("name ASC").all
|
11
|
+
@success = true
|
12
|
+
@data = @regions
|
13
|
+
else
|
14
|
+
@success = false
|
15
|
+
@errors = {
|
16
|
+
heading: I18n.translate("api.regions.country_not_found.heading"),
|
17
|
+
message: I18n.translate("api.regions.country_not_found.message")
|
18
|
+
}
|
19
|
+
end
|
20
|
+
end
|
21
|
+
render_json_response(proc_code)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
data/app/models/city.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
class City < Pattana::ApplicationRecord
|
2
2
|
|
3
|
+
# Constants
|
4
|
+
EXCLUDED_JSON_ATTRIBUTES = [:created_at, :updated_at, :show_in_api]
|
5
|
+
|
3
6
|
# Associations
|
4
7
|
belongs_to :country
|
5
8
|
belongs_to :region, optional: true
|
@@ -11,6 +14,16 @@ class City < Pattana::ApplicationRecord
|
|
11
14
|
# Class Methods
|
12
15
|
# ------------------
|
13
16
|
|
17
|
+
# Exclude some attributes info from json output.
|
18
|
+
def as_json(options={})
|
19
|
+
options[:except] ||= EXCLUDED_JSON_ATTRIBUTES
|
20
|
+
#options[:include] ||= []
|
21
|
+
#options[:methods] = []
|
22
|
+
#options[:methods] << :profile_image
|
23
|
+
json = super(options)
|
24
|
+
Hash[*json.map{|k, v| [k, v || ""]}.flatten]
|
25
|
+
end
|
26
|
+
|
14
27
|
# Scopes Methods
|
15
28
|
|
16
29
|
# return an active record relation object with the search query in its where clause
|
data/app/models/country.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
class Country < Pattana::ApplicationRecord
|
2
2
|
|
3
|
+
# Constants
|
4
|
+
EXCLUDED_JSON_ATTRIBUTES = [:created_at, :updated_at, :show_in_api]
|
5
|
+
|
3
6
|
# Associations
|
4
7
|
has_many :regions
|
5
8
|
has_many :cities
|
@@ -11,6 +14,16 @@ class Country < Pattana::ApplicationRecord
|
|
11
14
|
# Class Methods
|
12
15
|
# ------------------
|
13
16
|
|
17
|
+
# Exclude some attributes info from json output.
|
18
|
+
def as_json(options={})
|
19
|
+
options[:except] ||= EXCLUDED_JSON_ATTRIBUTES
|
20
|
+
#options[:include] ||= []
|
21
|
+
#options[:methods] = []
|
22
|
+
#options[:methods] << :profile_image
|
23
|
+
json = super(options)
|
24
|
+
Hash[*json.map{|k, v| [k, v || ""]}.flatten]
|
25
|
+
end
|
26
|
+
|
14
27
|
# Scopes Methods
|
15
28
|
|
16
29
|
# return an active record relation object with the search query in its where clause
|
data/app/models/region.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
class Region < Pattana::ApplicationRecord
|
2
2
|
|
3
|
+
# Constants
|
4
|
+
EXCLUDED_JSON_ATTRIBUTES = [:created_at, :updated_at, :show_in_api]
|
5
|
+
|
3
6
|
# Associations
|
4
7
|
belongs_to :country
|
5
8
|
has_many :cities
|
@@ -11,6 +14,16 @@ class Region < Pattana::ApplicationRecord
|
|
11
14
|
# Class Methods
|
12
15
|
# ------------------
|
13
16
|
|
17
|
+
# Exclude some attributes info from json output.
|
18
|
+
def as_json(options={})
|
19
|
+
options[:except] ||= EXCLUDED_JSON_ATTRIBUTES
|
20
|
+
#options[:include] ||= []
|
21
|
+
#options[:methods] = []
|
22
|
+
#options[:methods] << :profile_image
|
23
|
+
json = super(options)
|
24
|
+
Hash[*json.map{|k, v| [k, v || ""]}.flatten]
|
25
|
+
end
|
26
|
+
|
14
27
|
# Scopes Methods
|
15
28
|
|
16
29
|
# return an active record relation object with the search query in its where clause
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<ul class="nav tabs-vertical">
|
2
|
+
<li class="<%= nav_active?('docs/countries') ? 'active' : '' %>">
|
3
|
+
<a href="/docs/api/v1/countries">
|
4
|
+
<i class="fa-globe visible-xs"></i>
|
5
|
+
<span class="hidden-xs">Countries</span>
|
6
|
+
</a>
|
7
|
+
</li>
|
8
|
+
<li class="<%= nav_active?('docs/regions') ? 'active' : '' %>">
|
9
|
+
<a href="/docs/api/v1/regions">
|
10
|
+
<i class="fa-globe visible-xs"></i>
|
11
|
+
<span class="hidden-xs">Regions</span>
|
12
|
+
</a>
|
13
|
+
</li>
|
14
|
+
<li class="<%= nav_active?('docs/cities_in_a_country') ? 'active' : '' %>">
|
15
|
+
<a href="/docs/api/v1/cities_in_a_country">
|
16
|
+
<i class="fa-globe visible-xs"></i>
|
17
|
+
<span class="hidden-xs">Cities (in a Country)</span>
|
18
|
+
</a>
|
19
|
+
</li>
|
20
|
+
<li class="<%= nav_active?('docs/cities_in_a_region') ? 'active' : '' %>">
|
21
|
+
<a href="/docs/api/v1/cities_in_a_region">
|
22
|
+
<i class="fa-globe visible-xs"></i>
|
23
|
+
<span class="hidden-xs">Cities (in a Region)</span>
|
24
|
+
</a>
|
25
|
+
</li>
|
26
|
+
</ul>
|
27
|
+
|
28
|
+
<style type="text/css">
|
29
|
+
.panel-positive h4.panel-title a { color: #68b828 !important; }
|
30
|
+
.panel-negative h4.panel-title a { color: #cc3f44 !important; }
|
31
|
+
</style>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<%
|
2
|
+
|
3
|
+
api_title = "Negative Case - 1 - should show errors if a valid country id is not passed"
|
4
|
+
|
5
|
+
api_input = <<-eos
|
6
|
+
{}
|
7
|
+
eos
|
8
|
+
|
9
|
+
api_output = <<-eos
|
10
|
+
{
|
11
|
+
"success": false,
|
12
|
+
"errors": {
|
13
|
+
"heading": "Invalid Country ID",
|
14
|
+
"message": "Pass a vaild Country ID to get the regions. Get Countries List along with their IDs from Countries API."
|
15
|
+
}
|
16
|
+
}
|
17
|
+
eos
|
18
|
+
|
19
|
+
%>
|
20
|
+
|
21
|
+
<%= render partial: "kuppayam/api/docs/example", locals: {
|
22
|
+
negative_case: true,
|
23
|
+
example_id: "neg_case_1",
|
24
|
+
api_title: api_title,
|
25
|
+
api_input: api_input,
|
26
|
+
api_output: api_output
|
27
|
+
} %>
|
@@ -0,0 +1,63 @@
|
|
1
|
+
<%
|
2
|
+
|
3
|
+
api_title = "Positive Case - 1 - should return all the cities in a country"
|
4
|
+
|
5
|
+
api_input = <<-eos
|
6
|
+
{}
|
7
|
+
eos
|
8
|
+
|
9
|
+
api_output = <<-eos
|
10
|
+
{
|
11
|
+
"success": true,
|
12
|
+
"data": [
|
13
|
+
{
|
14
|
+
"id": 21,
|
15
|
+
"name": "Abu Dhabi",
|
16
|
+
"alternative_names": "A-pu-that-pi,AEbu Saby,AUH,Aboe Dhabi,Abou Dabi,Abu Dabi,Abu Dabis,Abu Daby,Abu Daibi,Abu Dhabi,Abu Dhabi emiraat,Abu Zabi,Abu Zaby,Abu Zabye,Abu Zabyo,Abu á¸\u008cabi,Abu á¸\u0090abi,Abu-Dabi,Abu-Dabi khot,Abu-Dabio,Abu-Dzabi,Abú DabÃ\u00ad,Abú DaibÃ\u00ad,Abú ZabÃ\u00ad,Abû ",
|
17
|
+
"iso_code": "",
|
18
|
+
"country_id": 235,
|
19
|
+
"region_id": 14,
|
20
|
+
"latitude": "24.46667",
|
21
|
+
"longitude": "54.36667",
|
22
|
+
"population": 603492,
|
23
|
+
"priority": 1000
|
24
|
+
},
|
25
|
+
{
|
26
|
+
"id": 20,
|
27
|
+
"name": "Adh Dhayd",
|
28
|
+
"alternative_names": "Adh Dhaid,Adh Dhayd,Al Daid,Al-Dhayd,Dayd,Dhaid,Dhayd,Duhayd,Ihaid,aldhyd,اÙ\u0084ذÙ\u008aد,á¸\u0090ayd",
|
29
|
+
"iso_code": "",
|
30
|
+
"country_id": 235,
|
31
|
+
"region_id": 11,
|
32
|
+
"latitude": "25.28812",
|
33
|
+
"longitude": "55.88157",
|
34
|
+
"population": 24716,
|
35
|
+
"priority": 1000
|
36
|
+
},
|
37
|
+
.
|
38
|
+
.
|
39
|
+
.
|
40
|
+
{
|
41
|
+
"id": 8,
|
42
|
+
"name": "Umm al Qaywayn",
|
43
|
+
"alternative_names": "Oumm al Qaiwain,Oumm al Qaïwaïn,Um al Kawain,Um al Quweim,Umm al Qaiwain,Umm al Qawain,Umm al Qaywayn,Umm al-Quwain,Umm-ehl'-Kajvajn,Yumul al Quwain,am alqywyn,Умм-Ñ\u008dлÑ\u008c-Ð\u009aайвайн,Ø£Ù\u0085 اÙ\u0084Ù\u0082Ù\u008aÙ\u0088Ù\u008aÙ\u0086",
|
44
|
+
"iso_code": "",
|
45
|
+
"country_id": 235,
|
46
|
+
"region_id": 8,
|
47
|
+
"latitude": "25.56473",
|
48
|
+
"longitude": "55.55517",
|
49
|
+
"population": 44411,
|
50
|
+
"priority": 1000
|
51
|
+
}]
|
52
|
+
}
|
53
|
+
eos
|
54
|
+
|
55
|
+
%>
|
56
|
+
|
57
|
+
<%= render partial: "kuppayam/api/docs/example", locals: {
|
58
|
+
negative_case: false,
|
59
|
+
example_id: "pos_case_1",
|
60
|
+
api_title: api_title,
|
61
|
+
api_input: api_input,
|
62
|
+
api_output: api_output
|
63
|
+
} %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<%
|
2
|
+
|
3
|
+
api_title = "Negative Case - 1 - should show errors if a valid country id is not passed"
|
4
|
+
|
5
|
+
api_input = <<-eos
|
6
|
+
{}
|
7
|
+
eos
|
8
|
+
|
9
|
+
api_output = <<-eos
|
10
|
+
{
|
11
|
+
"success": false,
|
12
|
+
"errors": {
|
13
|
+
"heading": "Invalid Country ID",
|
14
|
+
"message": "Pass a vaild Country ID to get the regions. Get Countries List along with their IDs from Countries API."
|
15
|
+
}
|
16
|
+
}
|
17
|
+
eos
|
18
|
+
|
19
|
+
%>
|
20
|
+
|
21
|
+
<%= render partial: "kuppayam/api/docs/example", locals: {
|
22
|
+
negative_case: true,
|
23
|
+
example_id: "neg_case_1",
|
24
|
+
api_title: api_title,
|
25
|
+
api_input: api_input,
|
26
|
+
api_output: api_output
|
27
|
+
} %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<%
|
2
|
+
|
3
|
+
api_title = "Negative Case - 2 - should show errors if a valid country id is not passed"
|
4
|
+
|
5
|
+
api_input = <<-eos
|
6
|
+
{}
|
7
|
+
eos
|
8
|
+
|
9
|
+
api_output = <<-eos
|
10
|
+
{
|
11
|
+
"success": false,
|
12
|
+
"errors": {
|
13
|
+
"heading": "Invalid Region ID",
|
14
|
+
"message": "Pass a vaild Region ID to get the regions. Get Regions List along with their IDs from Regions API"
|
15
|
+
}
|
16
|
+
}
|
17
|
+
eos
|
18
|
+
|
19
|
+
%>
|
20
|
+
|
21
|
+
<%= render partial: "kuppayam/api/docs/example", locals: {
|
22
|
+
negative_case: true,
|
23
|
+
example_id: "neg_case_1",
|
24
|
+
api_title: api_title,
|
25
|
+
api_input: api_input,
|
26
|
+
api_output: api_output
|
27
|
+
} %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<%
|
2
|
+
|
3
|
+
api_title = "Negative Case - 3 - should show errors if a valid country id is not passed"
|
4
|
+
|
5
|
+
api_input = <<-eos
|
6
|
+
{}
|
7
|
+
eos
|
8
|
+
|
9
|
+
api_output = <<-eos
|
10
|
+
{
|
11
|
+
"success": false,
|
12
|
+
"errors": {
|
13
|
+
"heading": "Region ID and the Country ID doesn't match",
|
14
|
+
"message": "Make sure that you pass the region id which belongs the right country id. This error is likely to be encountered when the region id belongs to a different country id than the one you have passed"
|
15
|
+
}
|
16
|
+
}
|
17
|
+
eos
|
18
|
+
|
19
|
+
%>
|
20
|
+
|
21
|
+
<%= render partial: "kuppayam/api/docs/example", locals: {
|
22
|
+
negative_case: true,
|
23
|
+
example_id: "neg_case_1",
|
24
|
+
api_title: api_title,
|
25
|
+
api_input: api_input,
|
26
|
+
api_output: api_output
|
27
|
+
} %>
|
@@ -0,0 +1,63 @@
|
|
1
|
+
<%
|
2
|
+
|
3
|
+
api_title = "Positive Case - 1 - should return all the cities in a country"
|
4
|
+
|
5
|
+
api_input = <<-eos
|
6
|
+
{}
|
7
|
+
eos
|
8
|
+
|
9
|
+
api_output = <<-eos
|
10
|
+
{
|
11
|
+
"success": true,
|
12
|
+
"data": [
|
13
|
+
{
|
14
|
+
"id": 21,
|
15
|
+
"name": "Abu Dhabi",
|
16
|
+
"alternative_names": "A-pu-that-pi,AEbu Saby,AUH,Aboe Dhabi,Abou Dabi,Abu Dabi,Abu Dabis,Abu Daby,Abu Daibi,Abu Dhabi,Abu Dhabi emiraat,Abu Zabi,Abu Zaby,Abu Zabye,Abu Zabyo,Abu á¸\u008cabi,Abu á¸\u0090abi,Abu-Dabi,Abu-Dabi khot,Abu-Dabio,Abu-Dzabi,Abú DabÃ\u00ad,Abú DaibÃ\u00ad,Abú ZabÃ\u00ad,Abû ",
|
17
|
+
"iso_code": "",
|
18
|
+
"country_id": 235,
|
19
|
+
"region_id": 14,
|
20
|
+
"latitude": "24.46667",
|
21
|
+
"longitude": "54.36667",
|
22
|
+
"population": 603492,
|
23
|
+
"priority": 1000
|
24
|
+
},
|
25
|
+
{
|
26
|
+
"id": 20,
|
27
|
+
"name": "Adh Dhayd",
|
28
|
+
"alternative_names": "Adh Dhaid,Adh Dhayd,Al Daid,Al-Dhayd,Dayd,Dhaid,Dhayd,Duhayd,Ihaid,aldhyd,اÙ\u0084ذÙ\u008aد,á¸\u0090ayd",
|
29
|
+
"iso_code": "",
|
30
|
+
"country_id": 235,
|
31
|
+
"region_id": 11,
|
32
|
+
"latitude": "25.28812",
|
33
|
+
"longitude": "55.88157",
|
34
|
+
"population": 24716,
|
35
|
+
"priority": 1000
|
36
|
+
},
|
37
|
+
.
|
38
|
+
.
|
39
|
+
.
|
40
|
+
{
|
41
|
+
"id": 8,
|
42
|
+
"name": "Umm al Qaywayn",
|
43
|
+
"alternative_names": "Oumm al Qaiwain,Oumm al Qaïwaïn,Um al Kawain,Um al Quweim,Umm al Qaiwain,Umm al Qawain,Umm al Qaywayn,Umm al-Quwain,Umm-ehl'-Kajvajn,Yumul al Quwain,am alqywyn,Умм-Ñ\u008dлÑ\u008c-Ð\u009aайвайн,Ø£Ù\u0085 اÙ\u0084Ù\u0082Ù\u008aÙ\u0088Ù\u008aÙ\u0086",
|
44
|
+
"iso_code": "",
|
45
|
+
"country_id": 235,
|
46
|
+
"region_id": 8,
|
47
|
+
"latitude": "25.56473",
|
48
|
+
"longitude": "55.55517",
|
49
|
+
"population": 44411,
|
50
|
+
"priority": 1000
|
51
|
+
}]
|
52
|
+
}
|
53
|
+
eos
|
54
|
+
|
55
|
+
%>
|
56
|
+
|
57
|
+
<%= render partial: "kuppayam/api/docs/example", locals: {
|
58
|
+
negative_case: false,
|
59
|
+
example_id: "pos_case_1",
|
60
|
+
api_title: api_title,
|
61
|
+
api_input: api_input,
|
62
|
+
api_output: api_output
|
63
|
+
} %>
|
@@ -0,0 +1,63 @@
|
|
1
|
+
<%
|
2
|
+
|
3
|
+
api_title = "Positive Case - 2 - should return all the cities in a region"
|
4
|
+
|
5
|
+
api_input = <<-eos
|
6
|
+
{}
|
7
|
+
eos
|
8
|
+
|
9
|
+
api_output = <<-eos
|
10
|
+
{
|
11
|
+
"success": true,
|
12
|
+
"data": [
|
13
|
+
{
|
14
|
+
"id": 21,
|
15
|
+
"name": "Abu Dhabi",
|
16
|
+
"alternative_names": "A-pu-that-pi,AEbu Saby,AUH,Aboe Dhabi,Abou Dabi,Abu Dabi,Abu Dabis,Abu Daby,Abu Daibi,Abu Dhabi,Abu Dhabi emiraat,Abu Zabi,Abu Zaby,Abu Zabye,Abu Zabyo,Abu á¸\u008cabi,Abu á¸\u0090abi,Abu-Dabi,Abu-Dabi khot,Abu-Dabio,Abu-Dzabi,Abú DabÃ\u00ad,Abú DaibÃ\u00ad,Abú ZabÃ\u00ad,Abû ",
|
17
|
+
"iso_code": "",
|
18
|
+
"country_id": 235,
|
19
|
+
"region_id": 14,
|
20
|
+
"latitude": "24.46667",
|
21
|
+
"longitude": "54.36667",
|
22
|
+
"population": 603492,
|
23
|
+
"priority": 1000
|
24
|
+
},
|
25
|
+
{
|
26
|
+
"id": 20,
|
27
|
+
"name": "Adh Dhayd",
|
28
|
+
"alternative_names": "Adh Dhaid,Adh Dhayd,Al Daid,Al-Dhayd,Dayd,Dhaid,Dhayd,Duhayd,Ihaid,aldhyd,اÙ\u0084ذÙ\u008aد,á¸\u0090ayd",
|
29
|
+
"iso_code": "",
|
30
|
+
"country_id": 235,
|
31
|
+
"region_id": 11,
|
32
|
+
"latitude": "25.28812",
|
33
|
+
"longitude": "55.88157",
|
34
|
+
"population": 24716,
|
35
|
+
"priority": 1000
|
36
|
+
},
|
37
|
+
.
|
38
|
+
.
|
39
|
+
.
|
40
|
+
{
|
41
|
+
"id": 8,
|
42
|
+
"name": "Umm al Qaywayn",
|
43
|
+
"alternative_names": "Oumm al Qaiwain,Oumm al Qaïwaïn,Um al Kawain,Um al Quweim,Umm al Qaiwain,Umm al Qawain,Umm al Qaywayn,Umm al-Quwain,Umm-ehl'-Kajvajn,Yumul al Quwain,am alqywyn,Умм-Ñ\u008dлÑ\u008c-Ð\u009aайвайн,Ø£Ù\u0085 اÙ\u0084Ù\u0082Ù\u008aÙ\u0088Ù\u008aÙ\u0086",
|
44
|
+
"iso_code": "",
|
45
|
+
"country_id": 235,
|
46
|
+
"region_id": 8,
|
47
|
+
"latitude": "25.56473",
|
48
|
+
"longitude": "55.55517",
|
49
|
+
"population": 44411,
|
50
|
+
"priority": 1000
|
51
|
+
}]
|
52
|
+
}
|
53
|
+
eos
|
54
|
+
|
55
|
+
%>
|
56
|
+
|
57
|
+
<%= render partial: "kuppayam/api/docs/example", locals: {
|
58
|
+
negative_case: false,
|
59
|
+
example_id: "pos_case_1",
|
60
|
+
api_title: api_title,
|
61
|
+
api_input: api_input,
|
62
|
+
api_output: api_output
|
63
|
+
} %>
|
@@ -0,0 +1,90 @@
|
|
1
|
+
<%
|
2
|
+
|
3
|
+
api_title = "Positive Case - 1 - should return all the countries"
|
4
|
+
|
5
|
+
api_input = <<-eos
|
6
|
+
{}
|
7
|
+
eos
|
8
|
+
|
9
|
+
api_output = <<-eos
|
10
|
+
{
|
11
|
+
"success": true,
|
12
|
+
"data": [
|
13
|
+
{
|
14
|
+
"id": 1,
|
15
|
+
"name": "Afghanistan",
|
16
|
+
"official_name": "Afghanistan",
|
17
|
+
"iso_name": "AFGHANISTAN",
|
18
|
+
"fips": "AF",
|
19
|
+
"iso_alpha_2": "AF",
|
20
|
+
"iso_alpha_3": "AFG",
|
21
|
+
"itu_code": "AFG",
|
22
|
+
"dialing_prefix": "93",
|
23
|
+
"tld": ".af",
|
24
|
+
"latitude": "33.0",
|
25
|
+
"longitude": "65.0",
|
26
|
+
"capital": "Kabul",
|
27
|
+
"continent": "AS",
|
28
|
+
"currency_code": "AFN",
|
29
|
+
"currency_name": "Afghani",
|
30
|
+
"is_independent": "Yes",
|
31
|
+
"languages": "fa-AF,ps,uz-AF,tk",
|
32
|
+
"priority": 1000
|
33
|
+
},
|
34
|
+
{
|
35
|
+
"id": 2,
|
36
|
+
"name": "Albania",
|
37
|
+
"official_name": "Albania",
|
38
|
+
"iso_name": "ALBANIA",
|
39
|
+
"fips": "AL",
|
40
|
+
"iso_alpha_2": "AL",
|
41
|
+
"iso_alpha_3": "ALB",
|
42
|
+
"itu_code": "ALB",
|
43
|
+
"dialing_prefix": "355",
|
44
|
+
"tld": ".al",
|
45
|
+
"latitude": "41.0",
|
46
|
+
"longitude": "20.0",
|
47
|
+
"capital": "Tirana",
|
48
|
+
"continent": "EU",
|
49
|
+
"currency_code": "ALL",
|
50
|
+
"currency_name": "Lek",
|
51
|
+
"is_independent": "Yes",
|
52
|
+
"languages": "sq,el",
|
53
|
+
"priority": 1000
|
54
|
+
},
|
55
|
+
.
|
56
|
+
.
|
57
|
+
.
|
58
|
+
{
|
59
|
+
"id": 246,
|
60
|
+
"name": "Zimbabwe",
|
61
|
+
"official_name": "Zimbabwe",
|
62
|
+
"iso_name": "ZIMBABWE",
|
63
|
+
"fips": "ZI",
|
64
|
+
"iso_alpha_2": "ZW",
|
65
|
+
"iso_alpha_3": "ZWE",
|
66
|
+
"itu_code": "ZWE",
|
67
|
+
"dialing_prefix": "263",
|
68
|
+
"tld": ".zw",
|
69
|
+
"latitude": "-20.0",
|
70
|
+
"longitude": "30.0",
|
71
|
+
"capital": "Harare",
|
72
|
+
"continent": "AF",
|
73
|
+
"currency_code": "ZWL",
|
74
|
+
"currency_name": "Zimbabwe Dollar",
|
75
|
+
"is_independent": "Yes",
|
76
|
+
"languages": "en-ZW,sn,nr,nd",
|
77
|
+
"priority": 1000
|
78
|
+
}]
|
79
|
+
}
|
80
|
+
eos
|
81
|
+
|
82
|
+
%>
|
83
|
+
|
84
|
+
<%= render partial: "kuppayam/api/docs/example", locals: {
|
85
|
+
negative_case: false,
|
86
|
+
example_id: "pos_case_1",
|
87
|
+
api_title: api_title,
|
88
|
+
api_input: api_input,
|
89
|
+
api_output: api_output
|
90
|
+
} %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<%
|
2
|
+
|
3
|
+
api_title = "Negative Case - 1 - should show errors if a valid country id is not passed"
|
4
|
+
|
5
|
+
api_input = <<-eos
|
6
|
+
{}
|
7
|
+
eos
|
8
|
+
|
9
|
+
api_output = <<-eos
|
10
|
+
{
|
11
|
+
"success": false,
|
12
|
+
"errors": {
|
13
|
+
"heading": "Invalid Country ID",
|
14
|
+
"message": "Pass a vaild Country ID to get the regions. Get Countries List along with their IDs from Countries API."
|
15
|
+
}
|
16
|
+
}
|
17
|
+
eos
|
18
|
+
|
19
|
+
%>
|
20
|
+
|
21
|
+
<%= render partial: "kuppayam/api/docs/example", locals: {
|
22
|
+
negative_case: true,
|
23
|
+
example_id: "neg_case_1",
|
24
|
+
api_title: api_title,
|
25
|
+
api_input: api_input,
|
26
|
+
api_output: api_output
|
27
|
+
} %>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
<%
|
2
|
+
|
3
|
+
api_title = "Positive Case - 1 - should return all the regions in a country"
|
4
|
+
|
5
|
+
api_input = <<-eos
|
6
|
+
{}
|
7
|
+
eos
|
8
|
+
|
9
|
+
api_output = <<-eos
|
10
|
+
{
|
11
|
+
"success": true,
|
12
|
+
"data": [
|
13
|
+
{
|
14
|
+
"id": 8,
|
15
|
+
"name": "Umm Al Quwain",
|
16
|
+
"iso_code": "AE-07",
|
17
|
+
"country_id": 235,
|
18
|
+
"latitude": "",
|
19
|
+
"longitude": "",
|
20
|
+
"priority": 1000
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"id": 9,
|
24
|
+
"name": "Ras Al Khaimah",
|
25
|
+
"iso_code": "AE-05",
|
26
|
+
"country_id": 235,
|
27
|
+
"latitude": "",
|
28
|
+
"longitude": "",
|
29
|
+
"priority": 1000
|
30
|
+
},
|
31
|
+
.
|
32
|
+
.
|
33
|
+
.
|
34
|
+
{
|
35
|
+
"id": 13,
|
36
|
+
"name": "Ajman",
|
37
|
+
"iso_code": "AE-02",
|
38
|
+
"country_id": 235,
|
39
|
+
"latitude": "25.41222",
|
40
|
+
"longitude": "55.434738",
|
41
|
+
"priority": 1000
|
42
|
+
}]
|
43
|
+
}
|
44
|
+
eos
|
45
|
+
|
46
|
+
%>
|
47
|
+
|
48
|
+
<%= render partial: "kuppayam/api/docs/example", locals: {
|
49
|
+
negative_case: false,
|
50
|
+
example_id: "pos_case_1",
|
51
|
+
api_title: api_title,
|
52
|
+
api_input: api_input,
|
53
|
+
api_output: api_output
|
54
|
+
} %>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
en:
|
2
|
+
api:
|
3
|
+
regions:
|
4
|
+
country_not_found:
|
5
|
+
heading: "Invalid Country ID"
|
6
|
+
message: "Pass a vaild Country ID to get the regions. Get Countries List along with their IDs from Countries API"
|
7
|
+
cities:
|
8
|
+
country_not_found:
|
9
|
+
heading: "Invalid Country ID"
|
10
|
+
message: "Pass a vaild Country ID to get the regions. Get Countries List along with their IDs from Countries API"
|
11
|
+
region_not_found:
|
12
|
+
heading: "Invalid Region ID"
|
13
|
+
message: "Pass a vaild Region ID to get the regions. Get Regions List along with their IDs from Regions API"
|
14
|
+
region_id_not_matching:
|
15
|
+
heading: "Region ID and the Country ID doesn't match"
|
16
|
+
message: "Make sure that you pass the region id which belongs the right country id. This error is likely to be encountered when the region id belongs to a different country id than the one you have passed"
|
@@ -0,0 +1,16 @@
|
|
1
|
+
en:
|
2
|
+
api:
|
3
|
+
regions:
|
4
|
+
country_not_found:
|
5
|
+
heading: "Invalid Country ID"
|
6
|
+
message: "Pass a vaild Country ID to get the regions. Get Countries List along with their IDs from Countries API"
|
7
|
+
cities:
|
8
|
+
country_not_found:
|
9
|
+
heading: "Invalid Country ID"
|
10
|
+
message: "Pass a vaild Country ID to get the regions. Get Countries List along with their IDs from Countries API"
|
11
|
+
region_not_found:
|
12
|
+
heading: "Invalid Region ID"
|
13
|
+
message: "Pass a vaild Region ID to get the regions. Get Regions List along with their IDs from Regions API"
|
14
|
+
region_id_not_matching:
|
15
|
+
heading: "Region ID and the Country ID doesn't match"
|
16
|
+
message: "Make sure that you pass the region id which belongs the right country id. This error is likely to be encountered when the region id belongs to a different country id than the one you have passed"
|
data/config/routes.rb
CHANGED
@@ -11,4 +11,39 @@ Pattana::Engine.routes.draw do
|
|
11
11
|
resources :regions, as: :regions
|
12
12
|
resources :cities, as: :cities
|
13
13
|
|
14
|
+
# get '/api/v1/countries', :controller => "/api/v1/countries", action: :index, as: :api_v1_countries
|
15
|
+
# get '/api/v1/:country_id/regions', :controller => "/api/v1/regions", action: :index, as: :api_v1_regions
|
16
|
+
# get '/api/v1/:country_id/cities', :controller => "/api/v1/cities", action: :cities_in_a_country, as: :api_v1_cities_in_a_country
|
17
|
+
# get '/api/v1/:country_id/:region_id/cities', :controller => "/api/v1/cities", action: :cities_in_a_region, as: :api_v1_cities_in_a_region
|
18
|
+
|
19
|
+
# namespace :docs do
|
20
|
+
# namespace :api do
|
21
|
+
# namespace :v1 do
|
22
|
+
# get 'countries', to: "/api/v1/docs#countries"
|
23
|
+
# get 'regions', to: "/api/v1/docs#regions"
|
24
|
+
# get 'cities', to: "/api/v1/docs#cities"
|
25
|
+
# end
|
26
|
+
# end
|
27
|
+
# end
|
28
|
+
|
29
|
+
namespace :api do
|
30
|
+
namespace :v1 do
|
31
|
+
get 'countries', :controller => "countries", action: :index
|
32
|
+
get ':country_id/regions', :controller => "regions", action: :index
|
33
|
+
get ':country_id/cities', :controller => "cities", action: :cities_in_a_country
|
34
|
+
get ':country_id/:region_id/cities', :controller => "cities", action: :cities_in_a_region
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
scope :docs do
|
39
|
+
namespace :api do
|
40
|
+
namespace :v1 do
|
41
|
+
get 'countries', :controller => "docs"
|
42
|
+
get 'regions', :controller => "docs"
|
43
|
+
get 'cities_in_a_country', :controller => "docs"
|
44
|
+
get 'cities_in_a_region', :controller => "docs"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
14
49
|
end
|
data/lib/pattana/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pattana
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kpvarma
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-09-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -90,14 +90,14 @@ dependencies:
|
|
90
90
|
requirements:
|
91
91
|
- - "~>"
|
92
92
|
- !ruby/object:Gem::Version
|
93
|
-
version: 0.1.
|
93
|
+
version: 0.1.8
|
94
94
|
type: :runtime
|
95
95
|
prerelease: false
|
96
96
|
version_requirements: !ruby/object:Gem::Requirement
|
97
97
|
requirements:
|
98
98
|
- - "~>"
|
99
99
|
- !ruby/object:Gem::Version
|
100
|
-
version: 0.1.
|
100
|
+
version: 0.1.8
|
101
101
|
- !ruby/object:Gem::Dependency
|
102
102
|
name: bcrypt
|
103
103
|
requirement: !ruby/object:Gem::Requirement
|
@@ -333,6 +333,12 @@ files:
|
|
333
333
|
- app/assets/javascripts/pattana/application.js
|
334
334
|
- app/assets/sketches/logo.sketch
|
335
335
|
- app/assets/stylesheets/pattana/application.css
|
336
|
+
- app/controllers/pattana/api/v1/base_controller.rb
|
337
|
+
- app/controllers/pattana/api/v1/cities_controller.rb
|
338
|
+
- app/controllers/pattana/api/v1/countries_controller.rb
|
339
|
+
- app/controllers/pattana/api/v1/docs_base_controller.rb
|
340
|
+
- app/controllers/pattana/api/v1/docs_controller.rb
|
341
|
+
- app/controllers/pattana/api/v1/regions_controller.rb
|
336
342
|
- app/controllers/pattana/application_controller.rb
|
337
343
|
- app/controllers/pattana/cities_controller.rb
|
338
344
|
- app/controllers/pattana/countries_controller.rb
|
@@ -346,11 +352,22 @@ files:
|
|
346
352
|
- app/models/country.rb
|
347
353
|
- app/models/pattana/application_record.rb
|
348
354
|
- app/models/region.rb
|
355
|
+
- app/views/kuppayam/api/docs/_navigation.html.erb
|
349
356
|
- app/views/layouts/kuppayam/_footer.html.erb
|
350
357
|
- app/views/layouts/kuppayam/_header.html.erb
|
351
358
|
- app/views/layouts/kuppayam/_navbar.html.erb
|
352
359
|
- app/views/layouts/kuppayam/_sidebar.html.erb
|
353
360
|
- app/views/layouts/pattana/application.html.erb
|
361
|
+
- app/views/pattana/api/v1/docs/cities_in_a_country/_neg_case_1.html.erb
|
362
|
+
- app/views/pattana/api/v1/docs/cities_in_a_country/_pos_case_1.html.erb
|
363
|
+
- app/views/pattana/api/v1/docs/cities_in_a_region/_neg_case_1.html.erb
|
364
|
+
- app/views/pattana/api/v1/docs/cities_in_a_region/_neg_case_2.html.erb
|
365
|
+
- app/views/pattana/api/v1/docs/cities_in_a_region/_neg_case_3.html.erb
|
366
|
+
- app/views/pattana/api/v1/docs/cities_in_a_region/_pos_case_1.html.erb
|
367
|
+
- app/views/pattana/api/v1/docs/cities_in_a_region/_pos_case_2.html.erb
|
368
|
+
- app/views/pattana/api/v1/docs/countries/_pos_case_1.html.erb
|
369
|
+
- app/views/pattana/api/v1/docs/regions/_neg_case_1.html.erb
|
370
|
+
- app/views/pattana/api/v1/docs/regions/_pos_case_1.html.erb
|
354
371
|
- app/views/pattana/cities/_index.html.erb
|
355
372
|
- app/views/pattana/cities/_row.html.erb
|
356
373
|
- app/views/pattana/cities/_show.html.erb
|
@@ -368,6 +385,8 @@ files:
|
|
368
385
|
- app/views/pattana/regions/_row.html.erb
|
369
386
|
- app/views/pattana/regions/_show.html.erb
|
370
387
|
- app/views/pattana/regions/index.html.erb
|
388
|
+
- config/locales/pattana/api.ar.yml
|
389
|
+
- config/locales/pattana/api.en.yml
|
371
390
|
- config/routes.rb
|
372
391
|
- db/master_data/cities.sql
|
373
392
|
- db/master_data/countries.sql
|