Add adminGetStats API and extend statistics types for admin dashboard
- Introduced `adminGetStats` API endpoint for fetching aggregated admin dashboard statistics. - Expanded `AdminStatsResponse` to include `registration_activity` and new type definitions for `UserGrowthData`, `OrgDistributionData`, and `UserStatusData`. - Added `AdminGetStatsData` and `AdminGetStatsResponses` types to improve API integration consistency. - Updated client generation and type annotations to support the new endpoint structure.
This commit is contained in:
@@ -12,6 +12,11 @@ export interface OrgDistributionData {
|
|||||||
value: number;
|
value: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface RegistrationActivityData {
|
||||||
|
date: string;
|
||||||
|
registrations: number;
|
||||||
|
}
|
||||||
|
|
||||||
export interface UserStatusData {
|
export interface UserStatusData {
|
||||||
name: string;
|
name: string;
|
||||||
value: number;
|
value: number;
|
||||||
@@ -20,6 +25,7 @@ export interface UserStatusData {
|
|||||||
export interface AdminStatsResponse {
|
export interface AdminStatsResponse {
|
||||||
user_growth: UserGrowthData[];
|
user_growth: UserGrowthData[];
|
||||||
organization_distribution: OrgDistributionData[];
|
organization_distribution: OrgDistributionData[];
|
||||||
|
registration_activity: RegistrationActivityData[];
|
||||||
user_status: UserStatusData[];
|
user_status: UserStatusData[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
import { type Client, type Options as Options2, type TDataShape, urlSearchParamsBodySerializer } from './client';
|
import { type Client, type Options as Options2, type TDataShape, urlSearchParamsBodySerializer } from './client';
|
||||||
import { client } from './client.gen';
|
import { client } from './client.gen';
|
||||||
import type { AdminActivateUserData, AdminActivateUserErrors, AdminActivateUserResponses, AdminAddOrganizationMemberData, AdminAddOrganizationMemberErrors, AdminAddOrganizationMemberResponses, AdminBulkUserActionData, AdminBulkUserActionErrors, AdminBulkUserActionResponses, AdminCreateOrganizationData, AdminCreateOrganizationErrors, AdminCreateOrganizationResponses, AdminCreateUserData, AdminCreateUserErrors, AdminCreateUserResponses, AdminDeactivateUserData, AdminDeactivateUserErrors, AdminDeactivateUserResponses, AdminDeleteOrganizationData, AdminDeleteOrganizationErrors, AdminDeleteOrganizationResponses, AdminDeleteUserData, AdminDeleteUserErrors, AdminDeleteUserResponses, AdminGetOrganizationData, AdminGetOrganizationErrors, AdminGetOrganizationResponses, AdminGetUserData, AdminGetUserErrors, AdminGetUserResponses, AdminListOrganizationMembersData, AdminListOrganizationMembersErrors, AdminListOrganizationMembersResponses, AdminListOrganizationsData, AdminListOrganizationsErrors, AdminListOrganizationsResponses, AdminListSessionsData, AdminListSessionsErrors, AdminListSessionsResponses, AdminListUsersData, AdminListUsersErrors, AdminListUsersResponses, AdminRemoveOrganizationMemberData, AdminRemoveOrganizationMemberErrors, AdminRemoveOrganizationMemberResponses, AdminUpdateOrganizationData, AdminUpdateOrganizationErrors, AdminUpdateOrganizationResponses, AdminUpdateUserData, AdminUpdateUserErrors, AdminUpdateUserResponses, ChangeCurrentUserPasswordData, ChangeCurrentUserPasswordErrors, ChangeCurrentUserPasswordResponses, CleanupExpiredSessionsData, CleanupExpiredSessionsResponses, ConfirmPasswordResetData, ConfirmPasswordResetErrors, ConfirmPasswordResetResponses, DeleteUserData, DeleteUserErrors, DeleteUserResponses, GetCurrentUserProfileData, GetCurrentUserProfileResponses, GetMyOrganizationsData, GetMyOrganizationsErrors, GetMyOrganizationsResponses, GetOrganizationData, GetOrganizationErrors, GetOrganizationMembersData, GetOrganizationMembersErrors, GetOrganizationMembersResponses, GetOrganizationResponses, GetUserByIdData, GetUserByIdErrors, GetUserByIdResponses, HealthCheckData, HealthCheckResponses, ListMySessionsData, ListMySessionsResponses, ListUsersData, ListUsersErrors, ListUsersResponses, LoginData, LoginErrors, LoginOauthData, LoginOauthErrors, LoginOauthResponses, LoginResponses, LogoutAllData, LogoutAllResponses, LogoutData, LogoutErrors, LogoutResponses, RefreshTokenData, RefreshTokenErrors, RefreshTokenResponses, RegisterData, RegisterErrors, RegisterResponses, RequestPasswordResetData, RequestPasswordResetErrors, RequestPasswordResetResponses, RevokeSessionData, RevokeSessionErrors, RevokeSessionResponses, RootGetData, RootGetResponses, UpdateCurrentUserData, UpdateCurrentUserErrors, UpdateCurrentUserResponses, UpdateOrganizationData, UpdateOrganizationErrors, UpdateOrganizationResponses, UpdateUserData, UpdateUserErrors, UpdateUserResponses } from './types.gen';
|
import type { AdminActivateUserData, AdminActivateUserErrors, AdminActivateUserResponses, AdminAddOrganizationMemberData, AdminAddOrganizationMemberErrors, AdminAddOrganizationMemberResponses, AdminBulkUserActionData, AdminBulkUserActionErrors, AdminBulkUserActionResponses, AdminCreateOrganizationData, AdminCreateOrganizationErrors, AdminCreateOrganizationResponses, AdminCreateUserData, AdminCreateUserErrors, AdminCreateUserResponses, AdminDeactivateUserData, AdminDeactivateUserErrors, AdminDeactivateUserResponses, AdminDeleteOrganizationData, AdminDeleteOrganizationErrors, AdminDeleteOrganizationResponses, AdminDeleteUserData, AdminDeleteUserErrors, AdminDeleteUserResponses, AdminGetOrganizationData, AdminGetOrganizationErrors, AdminGetOrganizationResponses, AdminGetStatsData, AdminGetStatsResponses, AdminGetUserData, AdminGetUserErrors, AdminGetUserResponses, AdminListOrganizationMembersData, AdminListOrganizationMembersErrors, AdminListOrganizationMembersResponses, AdminListOrganizationsData, AdminListOrganizationsErrors, AdminListOrganizationsResponses, AdminListSessionsData, AdminListSessionsErrors, AdminListSessionsResponses, AdminListUsersData, AdminListUsersErrors, AdminListUsersResponses, AdminRemoveOrganizationMemberData, AdminRemoveOrganizationMemberErrors, AdminRemoveOrganizationMemberResponses, AdminUpdateOrganizationData, AdminUpdateOrganizationErrors, AdminUpdateOrganizationResponses, AdminUpdateUserData, AdminUpdateUserErrors, AdminUpdateUserResponses, ChangeCurrentUserPasswordData, ChangeCurrentUserPasswordErrors, ChangeCurrentUserPasswordResponses, CleanupExpiredSessionsData, CleanupExpiredSessionsResponses, ConfirmPasswordResetData, ConfirmPasswordResetErrors, ConfirmPasswordResetResponses, DeleteUserData, DeleteUserErrors, DeleteUserResponses, GetCurrentUserProfileData, GetCurrentUserProfileResponses, GetMyOrganizationsData, GetMyOrganizationsErrors, GetMyOrganizationsResponses, GetOrganizationData, GetOrganizationErrors, GetOrganizationMembersData, GetOrganizationMembersErrors, GetOrganizationMembersResponses, GetOrganizationResponses, GetUserByIdData, GetUserByIdErrors, GetUserByIdResponses, HealthCheckData, HealthCheckResponses, ListMySessionsData, ListMySessionsResponses, ListUsersData, ListUsersErrors, ListUsersResponses, LoginData, LoginErrors, LoginOauthData, LoginOauthErrors, LoginOauthResponses, LoginResponses, LogoutAllData, LogoutAllResponses, LogoutData, LogoutErrors, LogoutResponses, RefreshTokenData, RefreshTokenErrors, RefreshTokenResponses, RegisterData, RegisterErrors, RegisterResponses, RequestPasswordResetData, RequestPasswordResetErrors, RequestPasswordResetResponses, RevokeSessionData, RevokeSessionErrors, RevokeSessionResponses, RootGetData, RootGetResponses, UpdateCurrentUserData, UpdateCurrentUserErrors, UpdateCurrentUserResponses, UpdateOrganizationData, UpdateOrganizationErrors, UpdateOrganizationResponses, UpdateUserData, UpdateUserErrors, UpdateUserResponses } from './types.gen';
|
||||||
|
|
||||||
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {
|
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {
|
||||||
/**
|
/**
|
||||||
@@ -484,6 +484,25 @@ export const cleanupExpiredSessions = <ThrowOnError extends boolean = false>(opt
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Admin: Get Dashboard Stats
|
||||||
|
*
|
||||||
|
* Get aggregated statistics for the admin dashboard (admin only)
|
||||||
|
*/
|
||||||
|
export const adminGetStats = <ThrowOnError extends boolean = false>(options?: Options<AdminGetStatsData, ThrowOnError>) => {
|
||||||
|
return (options?.client ?? client).get<AdminGetStatsResponses, unknown, ThrowOnError>({
|
||||||
|
responseType: 'json',
|
||||||
|
security: [
|
||||||
|
{
|
||||||
|
scheme: 'bearer',
|
||||||
|
type: 'http'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
url: '/api/v1/admin/stats',
|
||||||
|
...options
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Admin: List All Users
|
* Admin: List All Users
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -93,6 +93,28 @@ export type AdminSessionResponse = {
|
|||||||
is_active: boolean;
|
is_active: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AdminStatsResponse
|
||||||
|
*/
|
||||||
|
export type AdminStatsResponse = {
|
||||||
|
/**
|
||||||
|
* User Growth
|
||||||
|
*/
|
||||||
|
user_growth: Array<UserGrowthData>;
|
||||||
|
/**
|
||||||
|
* Organization Distribution
|
||||||
|
*/
|
||||||
|
organization_distribution: Array<OrgDistributionData>;
|
||||||
|
/**
|
||||||
|
* Registration Activity
|
||||||
|
*/
|
||||||
|
registration_activity: Array<RegistrationActivityData>;
|
||||||
|
/**
|
||||||
|
* User Status
|
||||||
|
*/
|
||||||
|
user_status: Array<UserStatusData>;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Body_login_oauth
|
* Body_login_oauth
|
||||||
*/
|
*/
|
||||||
@@ -234,6 +256,20 @@ export type MessageResponse = {
|
|||||||
message: string;
|
message: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* OrgDistributionData
|
||||||
|
*/
|
||||||
|
export type OrgDistributionData = {
|
||||||
|
/**
|
||||||
|
* Name
|
||||||
|
*/
|
||||||
|
name: string;
|
||||||
|
/**
|
||||||
|
* Value
|
||||||
|
*/
|
||||||
|
value: number;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* OrganizationCreate
|
* OrganizationCreate
|
||||||
*
|
*
|
||||||
@@ -550,6 +586,20 @@ export type RefreshTokenRequest = {
|
|||||||
refresh_token: string;
|
refresh_token: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* RegistrationActivityData
|
||||||
|
*/
|
||||||
|
export type RegistrationActivityData = {
|
||||||
|
/**
|
||||||
|
* Date
|
||||||
|
*/
|
||||||
|
date: string;
|
||||||
|
/**
|
||||||
|
* Registrations
|
||||||
|
*/
|
||||||
|
registrations: number;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SessionListResponse
|
* SessionListResponse
|
||||||
*
|
*
|
||||||
@@ -682,6 +732,28 @@ export type UserCreate = {
|
|||||||
* Is Superuser
|
* Is Superuser
|
||||||
*/
|
*/
|
||||||
is_superuser?: boolean;
|
is_superuser?: boolean;
|
||||||
|
/**
|
||||||
|
* Is Active
|
||||||
|
*/
|
||||||
|
is_active?: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UserGrowthData
|
||||||
|
*/
|
||||||
|
export type UserGrowthData = {
|
||||||
|
/**
|
||||||
|
* Date
|
||||||
|
*/
|
||||||
|
date: string;
|
||||||
|
/**
|
||||||
|
* Total Users
|
||||||
|
*/
|
||||||
|
total_users: number;
|
||||||
|
/**
|
||||||
|
* Active Users
|
||||||
|
*/
|
||||||
|
active_users: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -724,6 +796,24 @@ export type UserResponse = {
|
|||||||
* Updated At
|
* Updated At
|
||||||
*/
|
*/
|
||||||
updated_at?: string | null;
|
updated_at?: string | null;
|
||||||
|
/**
|
||||||
|
* Locale
|
||||||
|
*/
|
||||||
|
locale?: string | null;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UserStatusData
|
||||||
|
*/
|
||||||
|
export type UserStatusData = {
|
||||||
|
/**
|
||||||
|
* Name
|
||||||
|
*/
|
||||||
|
name: string;
|
||||||
|
/**
|
||||||
|
* Value
|
||||||
|
*/
|
||||||
|
value: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -752,6 +842,12 @@ export type UserUpdate = {
|
|||||||
preferences?: {
|
preferences?: {
|
||||||
[key: string]: unknown;
|
[key: string]: unknown;
|
||||||
} | null;
|
} | null;
|
||||||
|
/**
|
||||||
|
* Locale
|
||||||
|
*
|
||||||
|
* User's preferred locale (BCP 47 format: en, it, en-US, it-IT)
|
||||||
|
*/
|
||||||
|
locale?: string | null;
|
||||||
/**
|
/**
|
||||||
* Is Active
|
* Is Active
|
||||||
*/
|
*/
|
||||||
@@ -1270,6 +1366,22 @@ export type CleanupExpiredSessionsResponses = {
|
|||||||
|
|
||||||
export type CleanupExpiredSessionsResponse = CleanupExpiredSessionsResponses[keyof CleanupExpiredSessionsResponses];
|
export type CleanupExpiredSessionsResponse = CleanupExpiredSessionsResponses[keyof CleanupExpiredSessionsResponses];
|
||||||
|
|
||||||
|
export type AdminGetStatsData = {
|
||||||
|
body?: never;
|
||||||
|
path?: never;
|
||||||
|
query?: never;
|
||||||
|
url: '/api/v1/admin/stats';
|
||||||
|
};
|
||||||
|
|
||||||
|
export type AdminGetStatsResponses = {
|
||||||
|
/**
|
||||||
|
* Successful Response
|
||||||
|
*/
|
||||||
|
200: AdminStatsResponse;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type AdminGetStatsResponse = AdminGetStatsResponses[keyof AdminGetStatsResponses];
|
||||||
|
|
||||||
export type AdminListUsersData = {
|
export type AdminListUsersData = {
|
||||||
body?: never;
|
body?: never;
|
||||||
path?: never;
|
path?: never;
|
||||||
|
|||||||
Reference in New Issue
Block a user