From 4ec9794eb4c1e36f02ceddbe3426c7e9fd73563c Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 16 Feb 2022 18:51:17 +0000 Subject: [PATCH] Specing out search endpoint. --- packages/server/specs/openapi.json | 57 ++++++++++++++++++++++++++- packages/server/src/api/routes/row.js | 2 - 2 files changed, 55 insertions(+), 4 deletions(-) diff --git a/packages/server/specs/openapi.json b/packages/server/specs/openapi.json index b9c0d30d3b..076b1965a5 100644 --- a/packages/server/specs/openapi.json +++ b/packages/server/specs/openapi.json @@ -12,9 +12,62 @@ } ], "paths": { - "/api/public/v1/row/search": { + "/api/public/v1/row/{tableId}/search": { "post": { - "description": "Search for rows.", + "summary": "Allows searching for rows within a table.", + "parameters": { + "name": "tableId", + "in": "path", + "required": true, + "description": "The ID of the table which contains the rows which are being searched for.", + "schema": { + "type": "string" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "string": { + "type": "object", + "description": "A map of field name to the string to search for, this will look for rows that have a value starting with the string value. The format of this must be columnName -> \"string\"." + }, + "fuzzy": { + "type": "object", + "description": "A fuzzy search, only supported by internal tables." + }, + "range": { + "type": "object", + "description": "Searches within a range, the format of this must be columnName -> [low, high]." + }, + "equal": { + "type": "object", + "description": "Searches for rows that have a column value that is exactly the value set." + }, + "notEqual": { + "type": "object", + "description": "Searches for any row which does not contain the specified column value." + }, + "empty": { + "type": "object", + "description": "Searches for rows which do not contain the specified column. The object should simply contain keys of the column names, these can map to any value." + }, + "notEmpty": { + "type": "object", + "description": "Searches for rows which have the specified column." + }, + "oneOf": { + "type": "object", + "description": "Searches for rows which have a column value that is any of the specified values. The format of this must be columnName -> [value1, value2]." + } + } + } + } + } + }, "responses": { "200": { "description": "Returns the rows." diff --git a/packages/server/src/api/routes/row.js b/packages/server/src/api/routes/row.js index aa300108f1..802496833a 100644 --- a/packages/server/src/api/routes/row.js +++ b/packages/server/src/api/routes/row.js @@ -119,8 +119,6 @@ router * "notEqual": {}, * "empty": {}, * "notEmpty": {}, - * "contains": {}, - * "notContains": {} * "oneOf": { * "columnName": ["value"] * }