|
| 1 | +const firestore = require('../utils/db'); |
1 | 2 | const { createSuccessResponse, createErrorResponse } = require('../utils/helpers'); |
2 | 3 |
|
3 | | -// GEOS/COUNTRIES data from the existing Python implementation |
4 | | -// Note: Full list is shortened for brevity. In a real implementation, the complete list would be included. |
5 | | -const COUNTRIES = [ |
6 | | - {"geo": "ALL", "num_origins": "9731427"}, |
7 | | - {"geo": "United States of America", "num_origins": "1707677"}, |
8 | | - {"geo": "India", "num_origins": "826143"}, |
9 | | - {"geo": "Japan", "num_origins": "690984"}, |
10 | | - {"geo": "Germany", "num_origins": "678201"}, |
11 | | - {"geo": "Brazil", "num_origins": "644760"}, |
12 | | - { |
13 | | - "geo": "United Kingdom of Great Britain and Northern Ireland", |
14 | | - "num_origins": "560753", |
15 | | - }, |
16 | | - {"geo": "Russian Federation", "num_origins": "529803"}, |
17 | | - {"geo": "France", "num_origins": "515925"}, |
18 | | - {"geo": "Italy", "num_origins": "503015"}, |
19 | | - {"geo": "Spain", "num_origins": "459739"}, |
20 | | - {"geo": "Indonesia", "num_origins": "401253"}, |
21 | | - {"geo": "Poland", "num_origins": "350837"}, |
22 | | - {"geo": "Canada", "num_origins": "335548"}, |
23 | | - {"geo": "Mexico", "num_origins": "317337"}, |
24 | | - {"geo": "Turkey", "num_origins": "292310"}, |
25 | | - {"geo": "Netherlands", "num_origins": "291785"}, |
26 | | - {"geo": "Argentina", "num_origins": "252487"}, |
27 | | - {"geo": "Australia", "num_origins": "215909"}, |
28 | | - {"geo": "Korea, Republic of", "num_origins": "209013"}, |
29 | | - {"geo": "Philippines", "num_origins": "204637"}, |
30 | | - {"geo": "Colombia", "num_origins": "198020"}, |
31 | | - {"geo": "Malaysia", "num_origins": "193444"}, |
32 | | - {"geo": "Ukraine", "num_origins": "189866"}, |
33 | | - {"geo": "Viet Nam", "num_origins": "176473"}, |
34 | | - {"geo": "Thailand", "num_origins": "167337"}, |
35 | | - {"geo": "Pakistan", "num_origins": "157400"}, |
36 | | - {"geo": "Belgium", "num_origins": "157266"}, |
37 | | - {"geo": "South Africa", "num_origins": "150004"}, |
38 | | - {"geo": "Czechia", "num_origins": "148638"}, |
39 | | - {"geo": "Romania", "num_origins": "148176"}, |
40 | | - {"geo": "Taiwan, Province of China", "num_origins": "147383"}, |
41 | | - {"geo": "Chile", "num_origins": "144592"}, |
42 | | - {"geo": "Greece", "num_origins": "135996"}, |
43 | | - {"geo": "Austria", "num_origins": "135821"}, |
44 | | - {"geo": "Bangladesh", "num_origins": "134081"}, |
45 | | - {"geo": "Peru", "num_origins": "124954"}, |
46 | | - {"geo": "Iran (Islamic Republic of)", "num_origins": "122949"}, |
47 | | - {"geo": "Singapore", "num_origins": "121397"}, |
48 | | - {"geo": "Egypt", "num_origins": "119105"}, |
49 | | - {"geo": "Hungary", "num_origins": "117857"}, |
50 | | - {"geo": "Nigeria", "num_origins": "115407"}, |
51 | | - {"geo": "Portugal", "num_origins": "113035"}, |
52 | | - {"geo": "Kazakhstan", "num_origins": "111471"}, |
53 | | - {"geo": "Belarus", "num_origins": "109161"}, |
54 | | - {"geo": "Sweden", "num_origins": "108230"}, |
55 | | - {"geo": "Switzerland", "num_origins": "106121"}, |
56 | | - {"geo": "Saudi Arabia", "num_origins": "100966"}, |
57 | | - {"geo": "Israel", "num_origins": "99539"}, |
58 | | - {"geo": "Algeria", "num_origins": "98160"}, |
59 | | - {"geo": "Morocco", "num_origins": "96973"}, |
60 | | - {"geo": "Ireland", "num_origins": "96613"}, |
61 | | - {"geo": "Hong Kong", "num_origins": "95717"}, |
62 | | - {"geo": "United Arab Emirates", "num_origins": "91116"}, |
63 | | - {"geo": "Croatia", "num_origins": "85514"}, |
64 | | - {"geo": "Venezuela (Bolivarian Republic of)", "num_origins": "84283"}, |
65 | | - {"geo": "Slovakia", "num_origins": "84177"}, |
66 | | - {"geo": "Finland", "num_origins": "83107"}, |
67 | | - {"geo": "Serbia", "num_origins": "80789"}, |
68 | | - {"geo": "Ecuador", "num_origins": "80083"}, |
69 | | - {"geo": "Bulgaria", "num_origins": "75818"}, |
70 | | - {"geo": "Denmark", "num_origins": "69550"}, |
71 | | - {"geo": "New Zealand", "num_origins": "68444"}, |
72 | | - {"geo": "Uzbekistan", "num_origins": "65735"}, |
73 | | - {"geo": "Iraq", "num_origins": "65305"}, |
74 | | - {"geo": "Kenya", "num_origins": "62330"}, |
75 | | - {"geo": "Nepal", "num_origins": "60371"}, |
76 | | - {"geo": "Norway", "num_origins": "58300"}, |
77 | | - {"geo": "China", "num_origins": "57495"}, |
78 | | - {"geo": "Bolivia (Plurinational State of)", "num_origins": "55245"}, |
79 | | - {"geo": "Tunisia", "num_origins": "54813"}, |
80 | | - {"geo": "Sri Lanka", "num_origins": "53879"}, |
81 | | - {"geo": "Guatemala", "num_origins": "50897"}, |
82 | | - {"geo": "Azerbaijan", "num_origins": "46317"}, |
83 | | - {"geo": "Kyrgyzstan", "num_origins": "45478"}, |
84 | | - {"geo": "Lithuania", "num_origins": "45215"}, |
85 | | - {"geo": "Costa Rica", "num_origins": "44736"}, |
86 | | - {"geo": "Dominican Republic", "num_origins": "42618"}, |
87 | | - {"geo": "Moldova, Republic of", "num_origins": "41976"}, |
88 | | - {"geo": "Bosnia and Herzegovina", "num_origins": "41953"}, |
89 | | - {"geo": "Jordan", "num_origins": "41773"}, |
90 | | - {"geo": "Uruguay", "num_origins": "41139"}, |
91 | | - {"geo": "Panama", "num_origins": "38437"}, |
92 | | - {"geo": "Slovenia", "num_origins": "36027"}, |
93 | | - {"geo": "Ghana", "num_origins": "35980"}, |
94 | | - {"geo": "Paraguay", "num_origins": "35415"}, |
95 | | - {"geo": "Georgia", "num_origins": "34921"}, |
96 | | - {"geo": "Qatar", "num_origins": "34403"}, |
97 | | - {"geo": "Lebanon", "num_origins": "33694"}, |
98 | | - {"geo": "Puerto Rico", "num_origins": "33617"}, |
99 | | - {"geo": "El Salvador", "num_origins": "31654"}, |
100 | | - {"geo": "Syrian Arab Republic", "num_origins": "30714"}, |
101 | | - {"geo": "Latvia", "num_origins": "30530"}, |
102 | | - {"geo": "Honduras", "num_origins": "29712"}, |
103 | | - {"geo": "Myanmar", "num_origins": "29348"}, |
104 | | - {"geo": "Cyprus", "num_origins": "29012"}, |
105 | | - {"geo": "Oman", "num_origins": "27345"}, |
106 | | - {"geo": "Tanzania, United Republic of", "num_origins": "27335"}, |
107 | | - {"geo": "Cameroon", "num_origins": "26828"}, |
108 | | - {"geo": "Kuwait", "num_origins": "26458"}, |
109 | | - {"geo": "Armenia", "num_origins": "26355"}, |
110 | | - {"geo": "Nicaragua", "num_origins": "26015"}, |
111 | | - {"geo": "Estonia", "num_origins": "25576"}, |
112 | | - {"geo": "Côte d'Ivoire", "num_origins": "25208"}, |
113 | | - {"geo": "Cambodia", "num_origins": "24593"}, |
114 | | - {"geo": "Uganda", "num_origins": "24532"}, |
115 | | - {"geo": "Libya", "num_origins": "23730"}, |
116 | | - {"geo": "Cuba", "num_origins": "23056"}, |
117 | | - {"geo": "Ethiopia", "num_origins": "22650"}, |
118 | | - {"geo": "Albania", "num_origins": "22445"}, |
119 | | - {"geo": "Yemen", "num_origins": "22186"}, |
120 | | - {"geo": "North Macedonia", "num_origins": "21259"}, |
121 | | - {"geo": "Palestine, State of", "num_origins": "20468"}, |
122 | | - {"geo": "Senegal", "num_origins": "20323"}, |
123 | | - {"geo": "Montenegro", "num_origins": "20212"}, |
124 | | - {"geo": "Sudan", "num_origins": "20152"}, |
125 | | - {"geo": "Jamaica", "num_origins": "18847"}, |
126 | | - {"geo": "Iceland", "num_origins": "18261"}, |
127 | | - {"geo": "Zambia", "num_origins": "17567"}, |
128 | | - {"geo": "Bahrain", "num_origins": "17522"}, |
129 | | - {"geo": "Réunion", "num_origins": "17251"}, |
130 | | - {"geo": "Trinidad and Tobago", "num_origins": "16445"}, |
131 | | - {"geo": "Mauritius", "num_origins": "16238"}, |
132 | | - {"geo": "Zimbabwe", "num_origins": "15515"}, |
133 | | - {"geo": "Tajikistan", "num_origins": "14835"}, |
134 | | - {"geo": "Lao People's Democratic Republic", "num_origins": "14796"}, |
135 | | - {"geo": "Luxembourg", "num_origins": "14647"}, |
136 | | - {"geo": "Congo, Democratic Republic of the", "num_origins": "14545"}, |
137 | | - {"geo": "Angola", "num_origins": "13428"}, |
138 | | - {"geo": "Haiti", "num_origins": "13083"}, |
139 | | - {"geo": "Malta", "num_origins": "12984"}, |
140 | | - {"geo": "Mozambique", "num_origins": "12706"}, |
141 | | - {"geo": "Mongolia", "num_origins": "12574"}, |
142 | | - {"geo": "Burkina Faso", "num_origins": "12325"}, |
143 | | - {"geo": "Benin", "num_origins": "12292"}, |
144 | | - {"geo": "Somalia", "num_origins": "12176"}, |
145 | | - {"geo": "Mali", "num_origins": "10834"}, |
146 | | - {"geo": "Turkmenistan", "num_origins": "10192"}, |
147 | | - {"geo": "Afghanistan", "num_origins": "9613"}, |
148 | | - {"geo": "Martinique", "num_origins": "9314"}, |
149 | | - {"geo": "Guadeloupe", "num_origins": "8961"}, |
150 | | - {"geo": "Brunei Darussalam", "num_origins": "8854"}, |
151 | | - {"geo": "Botswana", "num_origins": "8657"}, |
152 | | - {"geo": "Namibia", "num_origins": "8535"}, |
153 | | - {"geo": "Papua New Guinea", "num_origins": "8447"}, |
154 | | - {"geo": "Togo", "num_origins": "8308"}, |
155 | | - {"geo": "Malawi", "num_origins": "8305"}, |
156 | | - {"geo": "Maldives", "num_origins": "8262"}, |
157 | | - {"geo": "Kosovo", "num_origins": "7807"}, |
158 | | - {"geo": "Gabon", "num_origins": "7754"}, |
159 | | - {"geo": "Bhutan", "num_origins": "6919"}, |
160 | | - {"geo": "Guinea", "num_origins": "6702"}, |
161 | | - {"geo": "Madagascar", "num_origins": "6620"}, |
162 | | - {"geo": "Guyana", "num_origins": "6303"}, |
163 | | - {"geo": "Rwanda", "num_origins": "6129"}, |
164 | | - {"geo": "Mauritania", "num_origins": "5995"}, |
165 | | - {"geo": "Macao", "num_origins": "5889"}, |
166 | | - {"geo": "Suriname", "num_origins": "5827"}, |
167 | | - {"geo": "Niger", "num_origins": "5484"}, |
168 | | - {"geo": "Fiji", "num_origins": "5388"}, |
169 | | - {"geo": "Congo", "num_origins": "4697"}, |
170 | | - {"geo": "Barbados", "num_origins": "4509"}, |
171 | | - {"geo": "Bahamas", "num_origins": "4467"}, |
172 | | - {"geo": "Chad", "num_origins": "4426"}, |
173 | | - {"geo": "Sierra Leone", "num_origins": "4345"}, |
174 | | - {"geo": "Cabo Verde", "num_origins": "4125"}, |
175 | | - {"geo": "Liberia", "num_origins": "3899"}, |
176 | | - {"geo": "Belize", "num_origins": "3871"}, |
177 | | - {"geo": "French Guiana", "num_origins": "3603"}, |
178 | | - {"geo": "Eswatini", "num_origins": "3554"}, |
179 | | - {"geo": "French Polynesia", "num_origins": "3489"}, |
180 | | - {"geo": "New Caledonia", "num_origins": "3379"}, |
181 | | - {"geo": "Lesotho", "num_origins": "3265"}, |
182 | | - {"geo": "Gambia", "num_origins": "3217"}, |
183 | | - {"geo": "Timor-Leste", "num_origins": "3074"}, |
184 | | - {"geo": "Andorra", "num_origins": "3073"}, |
185 | | - {"geo": "South Sudan", "num_origins": "3040"}, |
186 | | - {"geo": "Curaçao", "num_origins": "2987"}, |
187 | | - {"geo": "Western Sahara", "num_origins": "2739"}, |
188 | | - {"geo": "Saint Lucia", "num_origins": "2493"}, |
189 | | - {"geo": "Guam", "num_origins": "2466"}, |
190 | | - {"geo": "Antigua and Barbuda", "num_origins": "2449"}, |
191 | | - {"geo": "Aruba", "num_origins": "2420"}, |
192 | | - {"geo": "Djibouti", "num_origins": "2395"}, |
193 | | - {"geo": "Burundi", "num_origins": "2301"}, |
194 | | - {"geo": "Seychelles", "num_origins": "2007"}, |
195 | | - {"geo": "Mayotte", "num_origins": "1820"}, |
196 | | - {"geo": "Grenada", "num_origins": "1597"}, |
197 | | - {"geo": "Guinea-Bissau", "num_origins": "1592"}, |
198 | | - {"geo": "Comoros", "num_origins": "1563"}, |
199 | | - {"geo": "Cayman Islands", "num_origins": "1549"}, |
200 | | - {"geo": "Jersey", "num_origins": "1499"}, |
201 | | - {"geo": "Saint Vincent and the Grenadines", "num_origins": "1453"}, |
202 | | - {"geo": "Isle of Man", "num_origins": "1374"}, |
203 | | - {"geo": "Faroe Islands", "num_origins": "1233"}, |
204 | | - {"geo": "Equatorial Guinea", "num_origins": "1218"}, |
205 | | - {"geo": "Virgin Islands (U.S.)", "num_origins": "1074"}, |
206 | | - {"geo": "Dominica", "num_origins": "1049"}, |
207 | | - {"geo": "Sint Maarten (Dutch part)", "num_origins": "952"}, |
208 | | - {"geo": "Solomon Islands", "num_origins": "946"}, |
209 | | - {"geo": "Guernsey", "num_origins": "936"}, |
210 | | - {"geo": "Saint Kitts and Nevis", "num_origins": "917"}, |
211 | | - {"geo": "Central African Republic", "num_origins": "879"}, |
212 | | - {"geo": "Virgin Islands (British)", "num_origins": "864"}, |
213 | | - {"geo": "San Marino", "num_origins": "845"}, |
214 | | - {"geo": "Bermuda", "num_origins": "796"}, |
215 | | - {"geo": "Samoa", "num_origins": "771"}, |
216 | | - {"geo": "Gibraltar", "num_origins": "710"}, |
217 | | - {"geo": "Vanuatu", "num_origins": "697"}, |
218 | | - {"geo": "Saint Martin (French part)", "num_origins": "642"}, |
219 | | - {"geo": "Greenland", "num_origins": "631"}, |
220 | | - {"geo": "Bonaire, Sint Eustatius and Saba", "num_origins": "615"}, |
221 | | - {"geo": "Marshall Islands", "num_origins": "604"}, |
222 | | - {"geo": "Turks and Caicos Islands", "num_origins": "548"}, |
223 | | -]; |
224 | | - |
225 | 4 | /** |
226 | | - * List all geographic locations |
| 5 | + * List all geographic locations from database |
227 | 6 | */ |
228 | 7 | const listGeos = async (req, res) => { |
229 | 8 | try { |
| 9 | + const snapshot = await firestore.collection('geos').orderBy('mobile_origins', 'desc').get(); |
| 10 | + const data = []; |
| 11 | + |
| 12 | + // Extract only the 'geo' property from each document |
| 13 | + snapshot.forEach(doc => { |
| 14 | + const docData = doc.data(); |
| 15 | + data.push({ geo: docData.geo }); |
| 16 | + }); |
| 17 | + |
230 | 18 | res.statusCode = 200; |
231 | | - res.end(JSON.stringify(createSuccessResponse(COUNTRIES))); |
| 19 | + res.end(JSON.stringify(createSuccessResponse(data))); |
232 | 20 | } catch (error) { |
233 | 21 | console.error('Error fetching geographic locations:', error); |
234 | 22 | res.statusCode = 400; |
|
0 commit comments