Session

DB model

class iperon.contrib.session.SessionModel(**kwargs: Any)

Model session

Param

session_id - Identifier session

Param

created_at - Session creation date

Param

updated_at - Session creation date

Param

expire_at - Session update date

Param

category - Session category

Param

data - Data dictionary

Param

jwt_token - JWT token

class Meta
table = 'session'
session_id: int

Pydantic model

Session model

pydantic model iperon.contrib.session.Session

Class for working with sessions

Show JSON schema
{
   "title": "Session",
   "description": "Class for working with sessions ",
   "type": "object",
   "properties": {
      "session_id": {
         "title": "Session Id",
         "type": "integer"
      },
      "created_at": {
         "title": "Created At",
         "type": "string",
         "format": "date-time"
      },
      "updated_at": {
         "title": "Updated At",
         "type": "string",
         "format": "date-time"
      },
      "expire_at": {
         "title": "Expire At",
         "type": "string",
         "format": "date-time"
      },
      "category": {
         "$ref": "#/definitions/Category"
      },
      "data": {
         "title": "Data",
         "type": "object",
         "additionalProperties": {
            "type": "string"
         }
      },
      "jwt_token": {
         "title": "Jwt Token",
         "type": "string"
      },
      "member_id": {
         "title": "Member Id",
         "type": "integer"
      },
      "user_id": {
         "title": "User Id",
         "type": "integer"
      }
   },
   "required": [
      "session_id",
      "created_at",
      "updated_at",
      "expire_at",
      "category",
      "data",
      "jwt_token"
   ],
   "definitions": {
      "Category": {
         "title": "Category",
         "description": "An enumeration.",
         "enum": [
            1,
            2,
            3
         ],
         "type": "integer"
      }
   }
}

Fields
field category: iperon.contrib.session.Category [Required]
field created_at: datetime.datetime [Required]
field data: dict[str, str] [Required]
field expire_at: datetime.datetime [Required]
field jwt_token: str [Required]
field member_id: iperon.typeof.MemberID = None
field session_id: iperon.typeof.SessionID [Required]
field updated_at: datetime.datetime [Required]
field user_id: iperon.typeof.UserID = None
async classmethod all() list['Session']

Get all sessions

Returns

Session

Return type

list[Session]

async classmethod create(data: dict[str, str], expires: int, category: iperon.contrib.session.Category = Category.sign_up, member_id: Optional[iperon.typeof.MemberID] = None, user_id: Optional[iperon.typeof.UserID] = None) iperon.contrib.session.Session

Create session

Parameters
  • data (dict) – Data dictionary

  • expires (int) – Seconds after which the session will be unavailable

  • category (Category) – Category type

  • member_id (Union[UUID, str]) – Member id

  • user_id (Union[UUID, str]) – User id

Returns

Session

Return type

Session

async classmethod get(session_id: iperon.typeof.SessionID, category: iperon.contrib.session.Category = Category.sign_up) iperon.contrib.session.Session

Getting session

Parameters
Returns

Session

Return type

Session

async classmethod get_jwt_token(jwt_token: str, category: iperon.contrib.session.Category = Category.sign_up) iperon.contrib.session.Session
async remove() None

Remove session

async classmethod remove_all_session() int

Deletes all sessions

async classmethod remove_old_session() int

Deletes sessions that have expired

Returns

Returns the number of remote sessions

Return type

int

Category

class iperon.contrib.session.Category(value)

An enumeration.

auth = 3
restore_password = 2
sign_up = 1