Creating custom api but it is failing

System Information
  • **Strapi Version: v4.17.1
  • Operating System: mac
  • Database: postgres
  • Node Version: v18.19
  • NPM Version: 10.2.3
  • Yarn Version: 1.22.21

I have creating a custom api, but it is failing:

controller based code

// ./controller/meilisearch.ts

import { MeiliSearch } from 'meilisearch';

const meilisearch = new MeiliSearch({ host: 'http://localhost:7700' });

export const meilisearchService = {
  searchString: async (query: string) => {
    try {
      const { results } = await meilisearch.getRawIndexes()
      // const searchResults = await meilisearch.index('your_index').search(query);
      return results;
    } catch (error) {
      throw new Error('Error while searching in Meilisearch.');
    }
  },
};

router class:

// ./routes/meilisearch.ts
export default {
  routes: [
    {
      method: 'GET',
      path: '/meilisearch/search',
      handler: 'meilisearchService.searchString', // Check this path
      config: {
        policies: [],
      },
    },
    // ... other routes
  ],
};

service class:

// ./services/meilisearch.ts

import { MeiliSearch } from 'meilisearch';

const meilisearch = new MeiliSearch({ host: 'http://localhost:7700' });

export const meilisearchService = {
  searchString: async (query: string) => {
    try {
      const searchResults = await meilisearch.index('your_index').search(query);
      return searchResults;
    } catch (error) {
      throw new Error('Error while searching in Meilisearch.');
    }
  },
};

Error I am getting:

 TypeError: Error creating endpoint GET /meilisearch/search: Cannot read   ││   properties of undefined (reading 'searchString')                          ││   at getAction (/Users/ankitthakur/Documents/workspace/samples/strapi-cms   ││   -samples/newApp/node_modules/@strapi/strapi/dist/services/server/compos   ││   e-endpoint.js:104:24)

cc @Paul_Bratslavsky @Boegie19