diff --git a/plugins/search-backend-module-stack-overflow-teams-collator/src/collators/StackOverflowQuestionsCollatorFactory.ts b/plugins/search-backend-module-stack-overflow-teams-collator/src/collators/StackOverflowQuestionsCollatorFactory.ts index 6ac60de..18f4ce6 100644 --- a/plugins/search-backend-module-stack-overflow-teams-collator/src/collators/StackOverflowQuestionsCollatorFactory.ts +++ b/plugins/search-backend-module-stack-overflow-teams-collator/src/collators/StackOverflowQuestionsCollatorFactory.ts @@ -99,7 +99,7 @@ export class StackOverflowQuestionsCollatorFactory // See https://api.stackexchange.com/docs/questions this.requestParams = { order: 'desc', - sort: 'activity', + sort: 'creation', ...(options.requestParams ?? {}), }; } diff --git a/plugins/stack-overflow-teams-backend/src/api/createStackOverflowApi.ts b/plugins/stack-overflow-teams-backend/src/api/createStackOverflowApi.ts index 816cc47..0b084a1 100644 --- a/plugins/stack-overflow-teams-backend/src/api/createStackOverflowApi.ts +++ b/plugins/stack-overflow-teams-backend/src/api/createStackOverflowApi.ts @@ -6,7 +6,8 @@ export const createStackOverflowApi = (baseUrl: string) => { teamName?: string, body?: any, searchQuery?: string, - pageSize?: number + pageSize?: number, + additionalParams?: Record ): Promise => { let url = teamName ? `${baseUrl}/v3/teams/${teamName}${endpoint}` @@ -22,6 +23,12 @@ export const createStackOverflowApi = (baseUrl: string) => { queryParams.append('pageSize', pageSize.toString()); } + if (additionalParams) { + Object.entries(additionalParams).forEach(([key, value]) => { + queryParams.append(key, value); + }); + } + if (queryParams.toString()) { url += `?${queryParams.toString()}`; } @@ -49,8 +56,8 @@ export const createStackOverflowApi = (baseUrl: string) => { }; return { - GET: (endpoint: string, authToken: string, teamName?: string) => - request(endpoint, 'GET', authToken, teamName), + GET: (endpoint: string, authToken: string, teamName?: string, additionalParams?: Record) => + request(endpoint, 'GET', authToken, teamName, undefined, undefined, undefined, additionalParams), POST: (endpoint: string, body: any, authToken: string, teamName?: string) => request(endpoint, 'POST', authToken, teamName, body), diff --git a/plugins/stack-overflow-teams-backend/src/services/StackOverflowService/createStackOverflowService.ts b/plugins/stack-overflow-teams-backend/src/services/StackOverflowService/createStackOverflowService.ts index 0b29098..b33d51e 100644 --- a/plugins/stack-overflow-teams-backend/src/services/StackOverflowService/createStackOverflowService.ts +++ b/plugins/stack-overflow-teams-backend/src/services/StackOverflowService/createStackOverflowService.ts @@ -35,9 +35,9 @@ export async function createStackOverflowService({ return { // GET getQuestions: authToken => - api.GET>('/questions', authToken, teamName), + api.GET>('/questions', authToken, teamName, { sort: 'creation', order: 'desc' }), getTags: authToken => - api.GET>('/tags', authToken, teamName), + api.GET>('/tags', authToken, teamName, { sort: 'creationDate', order: 'desc'}), getUsers: authToken => api.GET>('/users', authToken, teamName), getMe: authToken => api.GET('/users/me', authToken, teamName), diff --git a/plugins/stack-overflow-teams/src/components/StackOverflow/StackOverflowPosts.tsx b/plugins/stack-overflow-teams/src/components/StackOverflow/StackOverflowPosts.tsx index 47ba350..497aff9 100644 --- a/plugins/stack-overflow-teams/src/components/StackOverflow/StackOverflowPosts.tsx +++ b/plugins/stack-overflow-teams/src/components/StackOverflow/StackOverflowPosts.tsx @@ -102,7 +102,7 @@ export const StackOverflowQuestions = () => { const [baseUrl, setBaseUrl] = useState(''); const { data, loading, error } = useStackOverflowData('questions'); const [searchTerm, setSearchTerm] = useState(''); - const [activeFilter, setActiveFilter] = useState(null); + const [activeFilter, setActiveFilter] = useState('active'); const [currentPage, setCurrentPage] = useState(0); useEffect(() => {