@@ -201,14 +201,8 @@ async def get_gadm_geostore_id(
201
201
) -> str :
202
202
src_table = await get_versioned_dataset (admin_provider , admin_version )
203
203
columns_etc : List [Column | Label ] = [db .column ("gfw_geostore_id" ),]
204
- sql : Select = db .select (columns_etc ).select_from (src_table )
205
- sql = await add_where_clauses (adm_level , admin_provider , admin_version , country_id , region_id , sql , subregion_id )
206
- row = await get_first_row (sql )
207
- if row is None :
208
- raise RecordNotFoundError (
209
- f"Admin boundary not found in { admin_provider } version { admin_version } "
210
- )
211
-
204
+ row = await _find_first_geostore (adm_level , admin_provider , admin_version , columns_etc , country_id , region_id ,
205
+ src_table , subregion_id )
212
206
return await row .gfw_geostore_id
213
207
214
208
@@ -246,15 +240,8 @@ async def build_gadm_geostore(
246
240
)
247
241
)
248
242
249
- sql : Select = db .select (columns_etc ).select_from (src_table )
250
-
251
- sql = await add_where_clauses (adm_level , admin_provider , admin_version , country_id , region_id , sql , subregion_id )
252
-
253
- row = await get_first_row (sql )
254
- if row is None :
255
- raise RecordNotFoundError (
256
- f"Admin boundary not found in { admin_provider } version { admin_version } "
257
- )
243
+ row = await _find_first_geostore (adm_level , admin_provider , admin_version , columns_etc , country_id , region_id ,
244
+ src_table , subregion_id )
258
245
259
246
if row .geojson is None :
260
247
raise GeometryIsNullError (
@@ -274,6 +261,18 @@ async def build_gadm_geostore(
274
261
)
275
262
276
263
264
+ async def _find_first_geostore (adm_level , admin_provider , admin_version , columns_etc , country_id , region_id , src_table ,
265
+ subregion_id ):
266
+ sql : Select = db .select (columns_etc ).select_from (src_table )
267
+ sql = await add_where_clauses (adm_level , admin_provider , admin_version , country_id , region_id , sql , subregion_id )
268
+ row = await get_first_row (sql )
269
+ if row is None :
270
+ raise RecordNotFoundError (
271
+ f"Admin boundary not found in { admin_provider } version { admin_version } "
272
+ )
273
+ return row
274
+
275
+
277
276
async def add_where_clauses (adm_level , admin_provider , admin_version , country_id , region_id , sql , subregion_id ):
278
277
where_clauses : List [TextClause ] = [
279
278
db .text ("adm_level=:adm_level" ).bindparams (adm_level = str (adm_level ))
0 commit comments