sts-sponsors team mailing list archive
-
sts-sponsors team
-
Mailing list archive
-
Message #07497
[Merge] ~petermakowski/maas-site-manager:update-login-request-data into maas-site-manager:main
Peter Makowski has proposed merging ~petermakowski/maas-site-manager:update-login-request-data into maas-site-manager:main.
Commit message:
update login request data
Requested reviews:
MAAS Committers (maas-committers)
For more details, see:
https://code.launchpad.net/~petermakowski/maas-site-manager/+git/site-manager/+merge/441756
--
Your team MAAS Committers is requested to review the proposed merge of ~petermakowski/maas-site-manager:update-login-request-data into maas-site-manager:main.
diff --git a/frontend/src/api/handlers.ts b/frontend/src/api/handlers.ts
index af8f4a5..0c02e1f 100644
--- a/frontend/src/api/handlers.ts
+++ b/frontend/src/api/handlers.ts
@@ -15,11 +15,14 @@ export const postLogin = async (data: PostLoginData) => {
throw Error("Missing required fields");
}
try {
- const formData = new FormData();
- formData.append("username", data.username);
- formData.append("password", data.password);
-
- const response = await api.post(urls.login, formData, { headers: { "Content-Type": "multipart/form-data" } });
+ const response = await api.post(
+ urls.login,
+ {
+ username: data.username,
+ password: data.password,
+ },
+ { headers: { "Content-Type": "multipart/form-data" } },
+ );
return response.data;
} catch (error) {
throw error;
diff --git a/frontend/src/components/LoginForm/LoginForm.tsx b/frontend/src/components/LoginForm/LoginForm.tsx
index 85bd262..c53503a 100644
--- a/frontend/src/components/LoginForm/LoginForm.tsx
+++ b/frontend/src/components/LoginForm/LoginForm.tsx
@@ -28,6 +28,7 @@ const LoginForm = () => {
const navigate = useNavigate();
const [searchParams] = useSearchParams();
const { login, isError, failureReason, status } = useAuthContext();
+ const failureDetails = failureReason?.response?.data?.detail;
const handleRedirect = useCallback(() => {
// send user back to the page they tried to visit
// { replace: true } avoids going back to login page once authenticated
@@ -54,8 +55,8 @@ const LoginForm = () => {
{isError ? (
<Row>
<Col emptyLarge={4} size={6}>
- <Notification role="alert" severity="negative">
- {failureReason?.response?.data?.detail ?? "An unknown error occurred."}
+ <Notification role="alert" severity="negative" title="Error">
+ {failureDetails && typeof failureDetails === "string" ? failureDetails : "An unknown error occurred"}
</Notification>
</Col>
</Row>
diff --git a/frontend/src/hooks/api.ts b/frontend/src/hooks/api.ts
index 74d685f..f050ab7 100644
--- a/frontend/src/hooks/api.ts
+++ b/frontend/src/hooks/api.ts
@@ -61,6 +61,8 @@ export const useRequestsCountQuery = () =>
export const useEnrollmentRequestsMutation = (
options: UseMutationOptions<unknown, unknown, PostEnrollmentRequestsData, unknown>,
) => useMutation(patchEnrollmentRequests, options);
-
-export type LoginError = AxiosError<{ detail?: string }>;
+export type ApiError = AxiosError<{
+ detail?: string | Array<{ loc: string[]; msg: string; type: string }>;
+}>;
+export type LoginError = ApiError;
export const useLoginMutation = (): UseMutationResult<AccessToken, LoginError, PostLoginData> => useMutation(postLogin);
Follow ups