declare module Levelup { namespace Core { namespace Users { /** * @description Service Api */ export namespace Api { export namespace Users { /** * -------------------------------------------------------------------------- * Create * -------------------------------------------------------------------------- * @link * @fires UsersService.Create * @param {Core.Users.Api.Users.Create.Request} query * @returns {Core.Users.Api.Users.Create.Response} * @method POST * */ export namespace Create { export type Request = Core.Utils.Api.Request.BuildCreateRequest; export type Response = Core.Utils.Api.Response.BuildSingleItemResponse; } /** * -------------------------------------------------------------------------- * Update * -------------------------------------------------------------------------- * @link * @fires UsersService.Update * @param {Core.Users.Api.Users.Update.Request} query * @returns {Core.Users.Api.Users.Update.Response} * @method PUT * */ export namespace Update { export type Request = Core.Utils.Api.Request.BuildUpdateRequest; export type Response = Core.Utils.Api.Response.BuildSingleItemResponse; } /** * -------------------------------------------------------------------------- * UpdateProfile * -------------------------------------------------------------------------- * @link * @fires UsersService.UpdateProfile * @param {Core.Users.Api.Users.UpdateProfile.Request} query * @returns {Core.Users.Api.Users.UpdateProfile.Response} * @method PUT * @link /profile/:id * */ export namespace UpdateProfile { export type Request = Core.Utils.Api.Request.BuildUpdateRequest< Entity.User["profile"] >; export type Response = Core.Utils.Api.Response.BuildSingleItemResponse; } /** * -------------------------------------------------------------------------- * UpdatePreferences * -------------------------------------------------------------------------- * @link * @fires UsersService.UpdatePreferences * @param {Core.Users.Api.Users.UpdatePreferences.Request} query * @returns {Core.Users.Api.Users.UpdatePreferences.Response} * @method PUT * @link /preferences/:id * */ export namespace UpdatePreferences { export type Request = Core.Utils.Api.Request.BuildUpdateRequest< Entity.User["preferences"] >; export type Response = Core.Utils.Api.Response.BuildSingleItemResponse; } /** * -------------------------------------------------------------------------- * UpdateLoginInfo * -------------------------------------------------------------------------- * @method PUT * @link /api/v2/users/:id/update-login-info * @fires UsersService.updateLoginInfo * @param {Core.Users.Api.Users.UpdateLoginInfo.Request} query * @returns {Core.Users.Api.Users.UpdateLoginInfo.Response} * */ export namespace UpdateLoginInfo { export type Request = Core.Utils.Api.Request.BuildUpdateRequest<{ email: string | undefined; password: string; }>; export type Response = Core.Utils.Api.Response.BuildSingleItemResponse; } /** * -------------------------------------------------------------------------- * UpdateSettings * -------------------------------------------------------------------------- * @link * @fires UsersService.UpdateSettings * @param {Core.Users.Api.Users.UpdateSettings.Request} query * @returns {Core.Users.Api.Users.UpdateSettings.Response} * @method PUT * */ export namespace UpdateSettings { export type Request =Core.Utils.Api.Request.BuildUpdateRequest<{ userPreferences?: Partial; }>; export type Response =Core.Utils.Api.Response.BuildSingleItemResponse<{ userPreferences?: Partial; }>; } /** * -------------------------------------------------------------------------- * Delete * -------------------------------------------------------------------------- * @link * @fires UsersService.Delete * @param {Core.Users.Api.Users.Delete.Request} query * @returns {Core.Users.Api.Users.Delete.Response} * @method DELETE * */ export namespace Delete { export type Request =Core.Utils.Api.Request.Build< Record >; export type Response =Core.Utils.Api.Response.DefaultDeleteResponse; } /** * -------------------------------------------------------------------------- * BulkDelete * -------------------------------------------------------------------------- * @link * @fires UsersService.BulkDelete * @param {Core.Users.Api.Users.BulkDelete.Request} query * @returns {Core.Users.Api.Users.BulkDelete.Response} * @method DELETE * */ export namespace BulkDelete { export type Request =Core.Utils.Api.Request.Build<{ items: string[]; hard?: boolean; }>; export type Response =Core.Utils.Api.Response.DefaultDeleteResponse; } /** * -------------------------------------------------------------------------- * one * -------------------------------------------------------------------------- * @method GET * @link /api/v2/users/:id * @fires UsersService.One * @param {Core.Users.Api.Users.GetOne.Request} query * @returns {Core.Users.Api.Users.GetOne.Response} * */ export namespace GetOne { export type Scope = "autocomplete"; export type Request =Core.Utils.Api.Request.Build< Record >; export type Response = Core.Utils.Api.Response.BuildSingleItemResponse; } /** * -------------------------------------------------------------------------- * List * -------------------------------------------------------------------------- * @link * @fires UsersService.List * @param {Core.Users.Api.Users.List.Request} query * @returns {Core.Users.Api.Users.List.Response} * @method GET * */ export namespace List { export type Scope = ""; export type Request = Core.Utils.Api.Request.BuildSearchablePagedSortableFilterableProjectable & { filters?: { store?:Core.Utils.Common.ID |Core.Utils.Common.ID[]; office?:Core.Utils.Common.ID |Core.Utils.Common.ID[]; country?:Core.Utils.Common.ID |Core.Utils.Common.ID[]; state?:Core.Utils.Common.ID |Core.Utils.Common.ID[]; city?:Core.Utils.Common.ID |Core.Utils.Common.ID[]; }; }; export type Response =Core.Utils.Api.Response.BuildListResponse< Entity.ExposedUser, "companies" | "stores" >; } /** * -------------------------------------------------------------------------- * ChangeRole * -------------------------------------------------------------------------- * @method PUT * @link /api/v2/users/:id/change-role * @fires UsersService.ChangeRole * @param {Core.Users.Api.Users.ChangeRole.Request} query * @returns {Core.Users.Api.Users.ChangeRole.Response} * */ export namespace ChangeRole { export type Request = Core.Utils.Api.Request.BuildUpdateRequest<{ user_id?:Core.Utils.Common.ID; /** * Role name or ID */ role: string; }>; export type Response = Core.Utils.Api.Response.BuildSingleItemResponse; } /** * -------------------------------------------------------------------------- * ChangePermissions * -------------------------------------------------------------------------- * @method PUT * @link /api/v2/users/:id/change-permissions * @fires Service.ChangePermissions * @param {Core.Users.Api.Users.ChangePermissions.Request} query * @returns {Core.Users.Api.Users.ChangePermissions.Response} * */ export namespace ChangePermissions { export type Request = Core.Utils.Api.Request.BuildUpdateRequest<{ user_id?:Core.Utils.Common.ID; permissions:Core.Utils.Common.ID[]; }>; export type Response = Core.Utils.Api.Response.BuildSingleItemResponse; } /** * -------------------------------------------------------------------------- * ChangeSuspendStatus * -------------------------------------------------------------------------- * @method PUT * @link /api/v2/users/:id/change-suspend-status * @fires Service.ChangeSuspendStatus * @param {Core.Users.Api.Users.ChangeSuspendStatus.Request} query * @returns {Core.Users.Api.Users.ChangeSuspendStatus.Response} * */ export namespace ChangeSuspendStatus { export type Request = Core.Utils.Api.Request.BuildUpdateRequest; export type Response = Core.Utils.Api.Response.BuildSingleItemResponse; } /** * -------------------------------------------------------------------------- * SetLastManagedStore * -------------------------------------------------------------------------- * @method PUT * @link /api/v2/users/set-last-managed-store * @fires Service.SetLastManagedStore * @param {Core.Users.Api.Users.SetLastManagedStore.Request} query * @returns {Core.Users.Api.Users.SetLastManagedStore.Response} * */ export namespace SetLastManagedStore { export type Request = Core.Utils.Api.Request.BuildUpdateRequest<{ store_id:Core.Utils.Common.ID; }>; export type Response = Core.Utils.Api.Response.BuildSingleItemResponse<{}>; } /** * -------------------------------------------------------------------------- * SetLastManagedOffice * -------------------------------------------------------------------------- * @method PUT * @link /api/v2/users/set-last-managed-office * @fires Service.SetLastManagedOffice * @param {Core.Users.Api.Users.SetLastManagedOffice.Request} query * @returns {Core.Users.Api.Users.SetLastManagedOffice.Response} * */ export namespace SetLastManagedOffice { export type Request = Core.Utils.Api.Request.BuildUpdateRequest<{ office1_id:Core.Utils.Common.ID; }>; export type Response = Core.Utils.Api.Response.BuildSingleItemResponse<{}>; } /** * -------------------------------------------------------------------------- * ListUserPermissions * -------------------------------------------------------------------------- * @method GET * @link /api/v2/users/:id/permissions * @fires UsersService.listUserPermissions * @param {Core.Users.Api.Users.ListUserPermissions.Request} query * @returns {Core.Users.Api.Users.ListUserPermissions.Response} * */ export namespace ListUserPermissions { export type Request =Core.Utils.Api.Request.Build< Record >; export type Response =Core.Utils.Api.Response.BuildSingleItemResponse<{ /** * List of permission names */ permissions: { _id:Core.Utils.Common.ID; group:Core.Utils.Common.ID; name: string; }[]; user: Entity.ExposedUser; }>; } /** * -------------------------------------------------------------------------- * GetInsightsHierarchySnapshotList * -------------------------------------------------------------------------- * @link * @fires UsersService.GetInsightsHierarchySnapshotList * @param {Core.Users.Api.Users.GetInsightsHierarchySnapshotList.Request} * @returns {Core.Users.Api.Users.GetInsightsHierarchySnapshotList.Response} */ export namespace GetInsightsHierarchySnapshotList { export type Request =Core.Utils.Api.Request.Build< Record >; type ItemDatum = { _id:Core.Utils.Common.ID; tr: string; dl: boolean; usr: string | null; cr: Date; fst: string | null; fml: string | null; r: string; rg: Core.Users.Entity.TRoleGroup; p: string | null; c?: string | null; sn?: string | null; st?: string | null; }; export type Response =Core.Utils.Api.Response.DefaultResponse & { data?: { data?: ItemDatum[]; last_update?: Date; found: boolean; expired: boolean; }; }; } } } } } }