Module: me_response
Expand source code
# Copyright (C) 2023-present The Project Contributors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from __future__ import annotations
from typing import List
from pydantic import BaseModel
from cl.runtime.routers.user_request import UserRequest
class MeResponse(BaseModel):
"""Response data type for the /auth/me route."""
id: str
"""Id of the user."""
username: str
"""Username of the user."""
first_name: str
"""First name of the user."""
last_name: str | None
"""Last name of the user."""
email: str | None
"""Email of the user."""
scopes: List[str] | None
"""List of scopes for the user."""
@classmethod
def get_me(cls, request: UserRequest) -> MeResponse:
"""Implements /auth/me route."""
# Get user from the request or use default value if not specified
# TODO: Obtain default user from settings
user = "root" if request.user is None else request.user
# Create response
# TODO: Consolidate first and last name into a single string full_name
result_dict = {
"id": user,
"username": user,
"first_name": user,
"last_name": None,
"email": None,
"scopes": ["Read", "Write", "Execute", "Developer"],
}
return MeResponse(**result_dict)
Classes
class MeResponse (**data: Any)
-
Response data type for the /auth/me route.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.Expand source code
class MeResponse(BaseModel): """Response data type for the /auth/me route.""" id: str """Id of the user.""" username: str """Username of the user.""" first_name: str """First name of the user.""" last_name: str | None """Last name of the user.""" email: str | None """Email of the user.""" scopes: List[str] | None """List of scopes for the user.""" @classmethod def get_me(cls, request: UserRequest) -> MeResponse: """Implements /auth/me route.""" # Get user from the request or use default value if not specified # TODO: Obtain default user from settings user = "root" if request.user is None else request.user # Create response # TODO: Consolidate first and last name into a single string full_name result_dict = { "id": user, "username": user, "first_name": user, "last_name": None, "email": None, "scopes": ["Read", "Write", "Execute", "Developer"], } return MeResponse(**result_dict)
Ancestors
- pydantic.main.BaseModel
Class variables
var email
-
Email of the user.
var first_name
-
First name of the user.
var id
-
Id of the user.
var last_name
-
Last name of the user.
var model_computed_fields
var model_config
var model_fields
var scopes
-
List of scopes for the user.
var username
-
Username of the user.
Static methods
def get_me(request: UserRequest) -> MeResponse
-
Implements /auth/me route.