Stephen Hess
1f6fefb3eb
converted placeholder controller to use generic service
8 years ago
Stephen Hess
e5a5fe8f3f
more strictly enforce valid bbox content
8 years ago
Stephen Hess
c3be7844cb
added comments, made code conciser
8 years ago
Stephen Hess
39a5312140
added guard clauses for bbox and centroid
8 years ago
Stephen Hess
fa95fe510a
handle case where result has data but no lineage
8 years ago
Stephen Hess
539edf09b7
added better error handling
8 years ago
Stephen Hess
8a7ba3d8de
added support for do_not_track header
8 years ago
Stephen Hess
f14400ebce
added placeholder service support to API for admin-only queries
...
Adds a controller, service (which could probably be made more generic and share with pointinpolygon), and predicates for determining when placeholder should be called.
This also renames `is_pip_service_enabled.js` to `is_service_enabled.js` since it's generic. If placeholder returns a non-empty response then `res.data` is populated, otherwise `res.data` is not populated, allowing fallback to existing production behavior.
8 years ago
Diana Shkolnikov
7c58f98ee1
add coarse reverse logging so we can tell how often it's getting called
8 years ago
Stephen Hess
d80d34cfd9
actually pass do-not-track to service
8 years ago
Stephen Hess
f06704985e
renamed predicates to be more accurate
8 years ago
Stephen Hess
f57ac6fa05
removed lodash
8 years ago
Stephen Hess
0d1d67d6a2
added street layer
8 years ago
Stephen Hess
58701f0169
return do-nothing PiP lookup function if config lacks `pipService`
...
- added URI-formatted `api.pipService` config support in schema
- added predicate that determines whether pipService is enabled/disabled
- reworked should-execute conditions for non-coarse reverse
8 years ago
Stephen Hess
52a6ec68ff
added support for coarse reverse geocoding
...
several things are in this commit:
- coarse reverse controller / pip service
- inject "conditional execute" predicate into search service to shortcut execution conditions
- added coarse reverse controller to precede standard reverse controller
- lots of tests!
8 years ago
Stephen Hess
6918d866b8
added comments clarifying retry logic
8 years ago
Stephen Hess
73ef71d863
moved helper functions outside of setup scope
8 years ago
Stephen Hess
5148198e1d
added helper functions
8 years ago
Stephen Hess
ac0776e2be
match error handling to controller/search
8 years ago
Stephen Hess
9da4b9d236
standardized on name to match controller/search
8 years ago
Stephen Hess
ece98a2ae6
converted to let/const
8 years ago
Stephen Hess
6425cc6444
added request retries for ES request timeouts
8 years ago
Stephen Hess
a4a6a691c8
cleaned up log message parts
8 years ago
Stephen Hess
96f9d12ff5
rewrote tests to proxyquire service/search to reduce complexity
...
added a few more tests for coverage, removed unused things from unit/mock/backend
8 years ago
Stephen Hess
fbe0de386e
added ending ']'
8 years ago
Stephen Hess
bf62a1844b
added tests for verifying request retry behavior
...
limited retry behavior to errors with status 408 (request timeout). this also reduces reliance on unit/mock/backend and unit/mock/query.
8 years ago
Stephen Hess
995b6109e3
removed used variable
8 years ago
Stephen Hess
0121d3db2a
get # of retries from API config instead of ES client
8 years ago
Stephen Hess
67bba11001
removed object indirection in favor of function for easier proxyquire
8 years ago
Stephen Hess
e83c12cd0e
added test for early bail when errors are present
...
simplified conditionals using lodash `.get`
8 years ago
Stephen Hess
40e6b1b3b7
renamed variable for clarity
8 years ago
Stephen Hess
fe0457cb8b
removed maxRetries default
8 years ago
Stephen Hess
4ed4b8b357
added retry support for ES requests that timeout
8 years ago
Stephen Hess
8c249c26f4
initialize esclient in routes/v1, eliminating need for src/backend
8 years ago
Stephen Hess
00234265e6
always inject backend instead of require'ing inside
8 years ago
Stephen Hess
de2ff8cad7
removed debug
8 years ago
Diana Shkolnikov
ec91f4055f
add controller logging
8 years ago
Peter Johnson
1451e9038e
change all log labels to 'api'
8 years ago
Diana Shkolnikov
9ff383cc2b
change the query module interfaces back to simple functions
8 years ago
Diana Shkolnikov
3888ae0385
change query module interfaces to allow for additional meta data
8 years ago
Stephen Hess
cc5c9f8468
disable calling GeodisambiguationQuery
8 years ago
Stephen Hess
2a9c25f8c4
added condition that `res.data` must be non-empty to return early
8 years ago
Stephen Hess
4952a0ed2b
added condition to exit early if there are already results in `res`
...
in order to accommodate falling back to the existing search strategy, the search controller must exit early if the `res.data` already exists.
8 years ago
Julian Simioni
2557c68368
Use index name from config in controllers
9 years ago
Alec Vulfson
31adf09870
Using new layers view to filter layers
9 years ago
Julian Simioni
23ff51fd57
Add custom access_log handlers that remove user info
...
These handlers will remove sensitive query info from the logs when DNT
is enabled
9 years ago
Julian Simioni
3c1d758229
Fix timeout error handling
...
Timeout errors come back from the Elasticsearch module as Error objects,
so instead of pushing the entire object onto the errors array, we should
just push the message.
I'm not sure if there are other cases where errors are just strings,
errors that aren't objects with a message property are handled as
before.
9 years ago
Vesa Meskanen
a2e96987fc
Remove expensive JSON.stringify from api debug logging calls
9 years ago
Julian Simioni
79883594b8
Use clean.layers to determine types
...
This allows removing the types middleware and simplifies some code.
9 years ago
Julian Simioni
ef78b2e0fd
Filter source and layer by new fields
...
This is functionally the same code as before, except that it uses the
new source and layer mapping.
9 years ago