WayrApp Backend & Ecosystem Documentation - v1.0.0
    Preparing search index...

    Class UserController

    HTTP API controller for user profile management operations.

    UserController

    Index

    Constructors

    Properties

    getProfile: (req: Request, res: Response, next: NextFunction) => Promise<any> = ...

    Retrieves the current authenticated user's profile information.

    Handles GET /api/users/profile endpoint. Requires authentication.

    Type declaration

      • (req: Request, res: Response, next: NextFunction): Promise<any>
      • Parameters

        • req: Request

          Express request object containing user authentication data

        • res: Response

          Express response object

        • next: NextFunction

        Returns Promise<any>

        Promise that resolves when response is sent

    // Response format:
    {
    "success": true,
    "timestamp": "2025-01-01T10:00:00Z",
    "data": {
    "id": "user-123",
    "email": "user@example.com",
    "username": "johndoe",
    "role": "student",
    "is_active": true,
    "registration_date": "2025-01-01T09:00:00Z"
    }
    }
    updateProfile: (req: Request, res: Response, next: NextFunction) => Promise<any> = ...

    Updates the current authenticated user's profile information.

    Handles PUT /api/users/profile endpoint. Requires authentication. Implements whitelist pattern for security hardening.

    Type declaration

      • (req: Request, res: Response, next: NextFunction): Promise<any>
      • Parameters

        • req: Request

          Express request object with profile updates in body

        • res: Response

          Express response object

        • next: NextFunction

        Returns Promise<any>

        Promise that resolves when response is sent

    // Request body:
    {
    "username": "newusername",
    "country_code": "US",
    "profile_picture_url": "https://example.com/avatar.jpg"
    }
    updatePassword: (
        req: Request,
        res: Response,
        next: NextFunction,
    ) => Promise<any> = ...

    Updates the current authenticated user's password.

    Handles PUT /api/users/password endpoint. Requires authentication and current password verification.

    Type declaration

      • (req: Request, res: Response, next: NextFunction): Promise<any>
      • Parameters

        • req: Request

          Express request object with password change data in body

        • res: Response

          Express response object

        • next: NextFunction

        Returns Promise<any>

        Promise that resolves when response is sent

    // Request body:
    {
    "current_password": "OldPassword123!",
    "new_password": "NewPassword456!"
    }
    getAllUsers: (req: Request, res: Response, next: NextFunction) => Promise<any> = ...

    Retrieves paginated list of all users with filtering and sorting options (administrative function).

    Handles GET /api/users endpoint. Requires admin role. Supports query parameters for pagination, filtering, and sorting.

    Type declaration

      • (req: Request, res: Response, next: NextFunction): Promise<any>
      • Parameters

        • req: Request

          Express request object with query parameters for filtering and pagination

        • res: Response

          Express response object

        • next: NextFunction

        Returns Promise<any>

        Promise that resolves when response is sent

    // Query parameters:
    // ?page=1&limit=20&role=student&is_active=true&search=john&sortBy=created_at&sortOrder=desc
    getUserById: (req: Request, res: Response, next: NextFunction) => Promise<any> = ...

    Retrieves detailed information for a specific user by ID (administrative function).

    Handles GET /api/users/:id endpoint. Requires admin role.

    Type declaration

      • (req: Request, res: Response, next: NextFunction): Promise<any>
      • Parameters

        • req: Request

          Express request object with user ID in params

        • res: Response

          Express response object

        • next: NextFunction

        Returns Promise<any>

        Promise that resolves when response is sent

    updateUserRole: (
        req: Request,
        res: Response,
        next: NextFunction,
    ) => Promise<any> = ...

    Updates a specific user's role (administrative function).

    Handles PUT /api/users/:id/role endpoint. Requires admin role.

    Type declaration

      • (req: Request, res: Response, next: NextFunction): Promise<any>
      • Parameters

        • req: Request

          Express request object with user ID in params and role data in body

        • res: Response

          Express response object

        • next: NextFunction

        Returns Promise<any>

        Promise that resolves when response is sent

    // Request body:
    {
    "role": "content_creator"
    }