@@ -14,7 +14,10 @@ const config = require('@rm/config')
1414const { getAreaSql } = require ( '../utils/getAreaSql' )
1515const { filterRTree } = require ( '../utils/filterRTree' )
1616const { fetchJson } = require ( '../utils/fetchJson' )
17- const { applyManualIdFilter } = require ( '../utils/manualFilter' )
17+ const {
18+ applyManualIdFilter,
19+ normalizeManualId,
20+ } = require ( '../utils/manualFilter' )
1821const {
1922 IV_CALC ,
2023 LEVEL_CALC ,
@@ -147,15 +150,11 @@ class Pokemon extends Model {
147150 if ( ! noPokemonSelect ) return [ ]
148151 }
149152
150- const manualIdRaw =
151- typeof args . filters . onlyManualId === 'string' ||
152- typeof args . filters . onlyManualId === 'number'
153- ? args . filters . onlyManualId
154- : null
155-
156153 const query = this . query ( )
157154
158- let manualId = null
155+ const manualIdFilter = normalizeManualId ( args . filters . onlyManualId )
156+
157+ let manualId = manualIdFilter
159158
160159 const pokemonIds = [ ]
161160 const pokemonForms = [ ]
@@ -184,7 +183,7 @@ class Pokemon extends Model {
184183 isMad ? this . knex ( ) . fn . now ( ) : ts ,
185184 )
186185 manualId = applyManualIdFilter ( query , {
187- manualId : manualIdRaw ,
186+ manualId : manualIdFilter ,
188187 latColumn : isMad ? 'pokemon.latitude' : 'lat' ,
189188 lonColumn : isMad ? 'pokemon.longitude' : 'lon' ,
190189 idColumn : isMad ? 'pokemon.encounter_id' : 'id' ,
@@ -256,8 +255,6 @@ class Pokemon extends Model {
256255 if ( ! getAreaSql ( query , areaRestrictions , onlyAreas , isMad , 'pokemon' ) ) {
257256 return [ ]
258257 }
259- } else {
260- manualId = manualIdRaw
261258 }
262259
263260 const filters = mem
@@ -687,11 +684,7 @@ class Pokemon extends Model {
687684 const { isMad, hasSize, hasHeight, mem, secret, httpAuth } = ctx
688685 const ts = Math . floor ( Date . now ( ) / 1000 )
689686 const { filterMap, globalFilter } = this . getFilters ( perms , args , ctx )
690- const manualIdRaw =
691- typeof args . filters . onlyManualId === 'string' ||
692- typeof args . filters . onlyManualId === 'number'
693- ? args . filters . onlyManualId
694- : null
687+ const manualIdFilter = normalizeManualId ( args . filters . onlyManualId )
695688 const queryLimits = config . getSafe ( 'api.queryLimits' )
696689
697690 if ( ! perms . iv && ! perms . pvp ) {
@@ -732,7 +725,7 @@ class Pokemon extends Model {
732725 return [ ]
733726 }
734727 const manualId = applyManualIdFilter ( query , {
735- manualId : manualIdRaw ,
728+ manualId : manualIdFilter ,
736729 latColumn : isMad ? 'pokemon.latitude' : 'lat' ,
737730 lonColumn : isMad ? 'pokemon.longitude' : 'lon' ,
738731 idColumn : isMad ? 'pokemon.encounter_id' : 'id' ,
0 commit comments