|
| 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