Skip to content

Commit a93e6b5

Browse files
committed
fix: changed search route to autocomplete
1 parent 396d03d commit a93e6b5

File tree

10 files changed

+24
-21
lines changed

10 files changed

+24
-21
lines changed

assets/jscpd-badge.svg

Lines changed: 2 additions & 2 deletions
Loading

k8s/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v1
22
description: A Helm chart for kube-ts-server
33
name: kube-ts-server
44
version: 1.0.0
5-
appVersion: 1.5.2
5+
appVersion: 1.5.3
66
home: https://cloud.docker.com/u/kubejs/repository/docker/kubejs/kube-ts-server
77
icon: https://avatars2.githubusercontent.com/u/47761918?s=200&v=4
88
sources:

k8s/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ replicaCount: 2
66

77
image:
88
repository: kubejs/kube-ts-server
9-
tag: 1.5.2
9+
tag: 1.5.3
1010
pullPolicy: Always
1111
containerPort: 3000
1212

src/config/subconfigs/http/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11

22
import { TOO_MANY_REQUESTS } from 'http-status-codes';
33
import {
4+
AUTOCOMPLETE_QUERY_PARAM_NAME,
45
CLIENT_RESET_PASSWORD_TOKEN_QUERY_PARAM_NAME,
56
CLIENT_RESET_PASSWORD_URL,
67
CLIENT_URL,
@@ -13,7 +14,6 @@ import {
1314
RATE_LIMITER_SKIP_METHODS,
1415
RATE_LIMITER_WINDOW_MS,
1516
READINESS_CHECK_URL,
16-
SEARCH_QUERY_PARAM_NAME,
1717
TOO_MANY_REQUEST_MESSAGE,
1818
TRUST_PROXY,
1919
VERSION_CHECK_URL,
@@ -73,7 +73,7 @@ export interface ClientConfig {
7373
readonly verifyTokenQueryParamName: string;
7474
readonly resetPasswordUrl: string;
7575
readonly resetPasswordTokenQueryParamName: string;
76-
readonly searchQueryParamName: string;
76+
readonly autocompleteQueryParam: string;
7777
}
7878

7979
export interface HttpConfig {
@@ -95,6 +95,7 @@ const config: HttpConfig = {
9595
version: getStringValue(process.env.VERSION_CHECK_URL, VERSION_CHECK_URL),
9696
},
9797
client: {
98+
autocompleteQueryParam: getStringValue(process.env.AUTOCOMPLETE_QUERY_PARAM_NAME, AUTOCOMPLETE_QUERY_PARAM_NAME),
9899
resetPasswordTokenQueryParamName: getStringValue(
99100
process.env.CLIENT_RESET_PASSWORD_TOKEN_QUERY_PARAM_NAME,
100101
CLIENT_RESET_PASSWORD_TOKEN_QUERY_PARAM_NAME
@@ -103,7 +104,6 @@ const config: HttpConfig = {
103104
process.env.CLIENT_RESET_PASSWORD_URL,
104105
CLIENT_RESET_PASSWORD_URL
105106
),
106-
searchQueryParamName: getStringValue(process.env.SEARCH_QUERY_PARAM_NAME, SEARCH_QUERY_PARAM_NAME),
107107
siteUrl: getStringValue(process.env.CLIENT_URL, CLIENT_URL),
108108
verifyEmailUrl: getStringValue(
109109
process.env.CLIENT_VERIFY_EMAIL_URL,

src/constants/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export const CLIENT_VERIFY_EMAIL_URL = 'http://localhost:9000/verify'; // @note:
1212
export const CLIENT_VERIFY_TOKEN_QUERY_PARAM_NAME = 'token';
1313
export const CLIENT_RESET_PASSWORD_URL = 'http://localhost:9000/reset-password'; // @note: this is client url
1414
export const CLIENT_RESET_PASSWORD_TOKEN_QUERY_PARAM_NAME = 'token';
15-
export const SEARCH_QUERY_PARAM_NAME = 'q';
15+
export const AUTOCOMPLETE_QUERY_PARAM_NAME = 'q';
1616

1717
export const TOO_MANY_REQUEST_MESSAGE =
1818
'Too many accounts created from this IP, please try again after an 10 minutes';

src/constants/routes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,4 @@ export const MODULES = '/modules';
2626
export const UNITS = '/units';
2727
export const COMMENTS = '/comments';
2828
export const DISCOVERY_ITEMS = '/discovery-items';
29-
export const SEARCH = '/search';
29+
export const AUTOCOMPLETE = '/autocomplete';

src/presenter/express/api/v1/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Router } from 'express';
22
import {
33
AUTH,
4+
AUTOCOMPLETE,
45
CATEGORIES,
56
COURSES,
67
DISCOVERY_ITEMS,
@@ -10,18 +11,17 @@ import {
1011
PERMISSIONS,
1112
ROLES,
1213
ROOT,
13-
SEARCH,
1414
USERS,
1515
} from '../../../../constants/routes';
1616
import Config from '../../presenterFactory/Config';
1717
import authFactory from './routes/auth/factory';
18+
import autocompleteHandler from './routes/autocompleteHandler';
1819
import categoriesFactory from './routes/categories/factory';
1920
import coursesFactory from './routes/courses/factory';
2021
import enrolmentsFactory from './routes/enrolments/factory';
2122
import getDiscoveryItems from './routes/getDiscoveryItems';
2223
import permissionsFactory from './routes/permissions/factory';
2324
import rolesFactory from './routes/roles/factory';
24-
import searchHandler from './routes/searchHandler';
2525
import usersFactory from './routes/users/factory';
2626
import describeApi from './routes/utils/describeApi';
2727

@@ -43,7 +43,7 @@ const apiV1 = (config: Config): Router => {
4343
router.use(COURSES, coursesFactory(config));
4444
router.use(ENROLMENTS, enrolmentsFactory(config));
4545
router.use(DISCOVERY_ITEMS, getDiscoveryItems(config));
46-
router.get(SEARCH, searchHandler(config));
46+
router.get(AUTOCOMPLETE, autocompleteHandler(config));
4747
// router.use(MODULES, modulesFactory(config));
4848
// router.use(UNITS, unitsFactory(config));
4949
// TODO: add route for uploading /avatar

src/presenter/express/api/v1/routes/searchHandler/index.ts renamed to src/presenter/express/api/v1/routes/autocompleteHandler/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import Config from '../../../../presenterFactory/Config';
99
import catchErrors from '../../../../utils/errors/catchErrors';
1010

1111

12-
const searchHandler = (config: Config) =>
12+
const autocompleteHandler = (config: Config) =>
1313
catchErrors(config, async (req, res) => {
14-
const name = config.appConfig.http.client.searchQueryParamName;
14+
const name = config.appConfig.http.client.autocompleteQueryParam;
1515

1616
const validationSchema = {
1717
[name]: String(0, SAFE_URL_LENGTH),
@@ -24,7 +24,7 @@ const searchHandler = (config: Config) =>
2424

2525
validateData(rules)(payload);
2626

27-
const response = await config.service.search({
27+
const response = await config.service.autocomplete({
2828
query: value
2929
});
3030

@@ -36,4 +36,4 @@ const searchHandler = (config: Config) =>
3636
});
3737
});
3838

39-
export default searchHandler;
39+
export default autocompleteHandler;

src/service/factory.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
import migrationsServiceFactory from '@js-migrations/core/dist/factory';
22
import FactoryConfig from './FactoryConfig';
33
import authFactory from './functions/auth/factory';
4+
import autocomplete from './functions/autocomplete';
45
import getCourseDetails from './functions/getCourseDetails';
56
import getDiscoveryItemsForHomepage from './functions/getDiscoveryItemsForHomepage';
67
import hasPermission from './functions/hasPermission';
78
import assignRolePermission from './functions/roles/assignRolePermission';
89
import revokeRolePermission from './functions/roles/revokeRolePermission';
9-
import search from './functions/search';
1010
import assignUserRole from './functions/users/assignUserRole';
1111
import revokeUserRole from './functions/users/revokeUserRole';
1212

1313
export default (config: FactoryConfig) => ({
1414
assignRolePermission: assignRolePermission(config),
1515
assignUserRole: assignUserRole(config),
1616
auth: authFactory(config),
17+
autocomplete: autocomplete(config),
1718
categories: config.repo.categories,
1819
closeDbConnection: config.repo.closeDbConnection,
1920
courses: config.repo.courses,
@@ -30,7 +31,6 @@ export default (config: FactoryConfig) => ({
3031
revokeUserRole: revokeUserRole(config),
3132
rolePermission: config.repo.rolePermission,
3233
roles: config.repo.roles,
33-
search: search(config),
3434
sendEmail: config.repo.sendEmail,
3535
userRole: config.repo.userRole,
3636
users: config.repo.users,

src/service/functions/search/index.ts renamed to src/service/functions/autocomplete/index.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export interface Options {
66
}
77

88
export default ({ repo }: Config) => async ({ query }: Options) => {
9-
const { items: courses } = await repo.courses.getItems({
9+
const courses = await repo.courses.getItems({
1010
filter: {
1111
$or: [
1212
{
@@ -25,7 +25,7 @@ export default ({ repo }: Config) => async ({ query }: Options) => {
2525
},
2626
});
2727

28-
const { items: users } = await repo.users.getItems({
28+
const users = await repo.users.getItems({
2929
filter: {
3030
$or: [
3131
{
@@ -43,6 +43,9 @@ export default ({ repo }: Config) => async ({ query }: Options) => {
4343

4444
return {
4545
courses,
46-
users: users.map(getVisibleUserProperties),
46+
users: {
47+
cursor: users.cursor,
48+
items: users.items.map(getVisibleUserProperties),
49+
},
4750
};
4851
};

0 commit comments

Comments
 (0)