Migrate client features to use new server
Remove all authManager references where possible.
Change fetch calls url to new server.
GitLab: #79
GitLab: #100
GitLab: #110
Change-Id: I1dce64108ceba67531372df764f8f7563cc50a3b
diff --git a/client/src/services/Account.ts b/client/src/services/Account.ts
deleted file mode 100644
index a955883..0000000
--- a/client/src/services/Account.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2022 Savoir-faire Linux Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with this program. If not, see
- * <https://www.gnu.org/licenses/>.
- */
-import { useQuery } from '@tanstack/react-query';
-import axios from 'axios';
-
-export const useAccountQuery = (accountId: string) => {
- return useQuery(['accounts', accountId], () => fetchAccount(accountId), {
- enabled: !!accountId,
- });
-};
-
-const fetchAccount = (accountId: string) => axios.get(`/api/accounts/${accountId}`).then((result) => result.data);
diff --git a/client/src/services/Conversation.ts b/client/src/services/Conversation.ts
index f89d5e9..d742730 100644
--- a/client/src/services/Conversation.ts
+++ b/client/src/services/Conversation.ts
@@ -18,30 +18,57 @@
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
import axios from 'axios';
-export const useConversationQuery = (accountId: string, conversationId: string) => {
- return useQuery(['conversation', accountId, conversationId], () => fetchConversation(accountId, conversationId), {
- enabled: !!(accountId && conversationId),
+import { useAuthContext } from '../contexts/AuthProvider';
+import { apiUrl } from '../utils/constants';
+
+export const useConversationQuery = (conversationId: string) => {
+ const { token } = useAuthContext();
+ return useQuery(['conversation', conversationId], () => fetchConversation(conversationId, token), {
+ enabled: !!conversationId,
});
};
-export const useMessagesQuery = (accountId: string, conversationId: string) => {
- return useQuery(['messages', accountId, conversationId], () => fetchMessages(accountId, conversationId), {
- enabled: !!(accountId && conversationId),
+export const useMessagesQuery = (conversationId: string) => {
+ const { token } = useAuthContext();
+ return useQuery(['messages', conversationId], () => fetchMessages(conversationId, token), {
+ enabled: !!conversationId,
});
};
-export const useSendMessageMutation = (accountId: string, conversationId: string) => {
+export const useSendMessageMutation = (conversationId: string) => {
+ const { token } = useAuthContext();
const queryClient = useQueryClient();
return useMutation(
- (message: string) => axios.post(`/api/accounts/${accountId}/conversations/${conversationId}`, { message }),
+ (message: string) =>
+ axios.post(
+ new URL(`/conversations/${conversationId}/messages`, apiUrl).toString(),
+ { message },
+ {
+ headers: {
+ Authorization: `Bearer ${token}`,
+ },
+ }
+ ),
{
- onSuccess: () => queryClient.invalidateQueries(['messages', accountId, conversationId]),
+ onSuccess: () => queryClient.invalidateQueries(['messages', conversationId]),
}
);
};
-const fetchConversation = (accountId: string, conversationId: string) =>
- axios.get(`/api/accounts/${accountId}/conversations/${conversationId}`).then((result) => result.data);
+const fetchConversation = (conversationId: string, token: string) =>
+ axios
+ .get(new URL(`/conversations/${conversationId}`, apiUrl).toString(), {
+ headers: {
+ Authorization: `Bearer ${token}`,
+ },
+ })
+ .then((result) => result.data);
-const fetchMessages = (accountId: string, conversationId: string) =>
- axios.get(`/api/accounts/${accountId}/conversations/${conversationId}/messages`).then((result) => result.data);
+const fetchMessages = (conversationId: string, token: string) =>
+ axios
+ .get(new URL(`/conversations/${conversationId}/messages`, apiUrl).toString(), {
+ headers: {
+ Authorization: `Bearer ${token}`,
+ },
+ })
+ .then((result) => result.data);