diff --git a/api/config/contentSources.ts b/api/config/contentSources.ts index 772426f4..e9feaa62 100644 --- a/api/config/contentSources.ts +++ b/api/config/contentSources.ts @@ -7,7 +7,7 @@ const config: ConfigFile = { outputFile: '../../src/store/contentSourcesApi.ts', exportName: 'contentSourcesApi', hooks: true, - filterEndpoints: ['listRepositories', 'listRepositoriesRpms'], + filterEndpoints: ['listRepositories', 'listRepositoriesRpms', 'searchRpm'], }; export default config; diff --git a/src/store/contentSourcesApi.ts b/src/store/contentSourcesApi.ts index 637cba0b..99a9ef5b 100644 --- a/src/store/contentSourcesApi.ts +++ b/src/store/contentSourcesApi.ts @@ -39,6 +39,13 @@ const injectedRtkApi = api.injectEndpoints({ }, }), }), + searchRpm: build.mutation({ + query: (queryArg) => ({ + url: `/rpms/names`, + method: "POST", + body: queryArg.apiContentUnitSearchRequest, + }), + }), }), overrideExisting: false, }); @@ -89,6 +96,11 @@ export type ListRepositoriesRpmsApiArg = { /** Sort the response based on specific repository parameters. Sort criteria can include `name`, `url`, `status`, and `package_count`. */ sortBy?: string; }; +export type SearchRpmApiResponse = /** status 200 OK */ ApiSearchRpmResponse[]; +export type SearchRpmApiArg = { + /** request body */ + apiContentUnitSearchRequest: ApiContentUnitSearchRequest; +}; export type ApiSnapshotResponse = { /** Count of each content type */ added_counts?: { @@ -263,5 +275,24 @@ export type ApiRepositoryRpmCollectionResponse = { links?: ApiLinks; meta?: ApiResponseMetadata; }; -export const { useListRepositoriesQuery, useListRepositoriesRpmsQuery } = - injectedRtkApi; +export type ApiSearchRpmResponse = { + /** Package name found */ + package_name?: string; + /** Summary of the package found */ + summary?: string; +}; +export type ApiContentUnitSearchRequest = { + /** Maximum number of records to return for the search */ + limit?: number; + /** Search string to search content unit names */ + search?: string; + /** URLs of repositories to search */ + urls?: string[]; + /** List of RepositoryConfig UUIDs to search */ + uuids?: string[]; +}; +export const { + useListRepositoriesQuery, + useListRepositoriesRpmsQuery, + useSearchRpmMutation, +} = injectedRtkApi;