Skip to content
ShellBakerIO edited this page Aug 1, 2024 · 1 revision

Описание проекта

license_generator - это инструмент для автоматической генерации лицензионных соглашений. Он поддерживает различные типы лицензий и позволяет легко настраивать параметры, такие как название компании, продукта, количество пользователей и срок действия.

Установка и запуск

1. Клонируйте репозиторий:

git clone https://github.com/ShellBakerIO/license_generator.git

2. Перейдите в директорию проекта:

cd license_generator

3. Установите зависимости:

pip install -r requirements.txt

4. Запустите приложение:

uvicorn main:app --reload

Эндпоинты

1. Авторизация

URL: /token
Метод: POST
Описание: Авторизация пользователя и выдача токена.
Запрос:

{
    "username": "user",
    "password": "password"
}

Ответ:

{
    "access_token": "jwt_token",
    "token_type": "bearer"
}

2. Получение информации о текущем пользователе

URL: /users/me
Метод: GET
Описание: Получение информации о текущем авторизованном пользователе.
Ответ:

{
    "username": "user",
    "exp": "expiration_time"
}

3. Генерация лицензии

URL: /generate_license
Метод: POST
Описание: Генерация новой лицензии.
Запрос:

{
    "company_name": "Компания",
    "product_name": "Продукт",
    "license_users_count": 100,
    "exp_time": "2025-12-31",
    "machine_digest_file": "файл"
}

Ответ: Файл лицензии в формате .txt

4. Получение всех лицензий

URL: /all_licenses
Метод: GET
Описание: Получение списка всех лицензий.
Ответ:

{
    "status": "success",
    "all_licenses": [
        {
            "id": 1,
            "company_name": "Компания",
            "product_name": "Продукт",
            "license_users_count": 100,
            "exp_time": "2025-12-31",
            "machine_digest_file": "файл",
            "lic_file_name": "лицензия"
        }
    ]
}

5. Получение лицензии по ID

URL: /license/{id}
Метод: GET
Описание: Получение лицензии по ID.
Запрос:

{
    "id": 1
}

Ответ: Файл лицензии в формате .txt

6. Получение machine_digest_file по ID

URL: /machine_digest_file/{id}
Метод: GET
Описание: Получение machine_digest_file по ID.
Запрос:

{
    "id": 1
}

Ответ: Файл machine_digest в формате .txt

7. Удаление лицензии

URL: /delete_license
Метод: DELETE
Описание: Удаление лицензии по ID.
Запрос:

{
    "id": 1
}

Ответ:

{
    "status": "success",
    "message": "Лицензия id-1 name-имя удалена",
    "license": {
        "id": 1,
        "company_name": "Компания",
        "product_name": "Продукт",
        "license_users_count": 100,
        "exp_time": "2025-12-31",
        "machine_digest_file": "файл",
        "lic_file_name": "лицензия"
    }
}

DTO (Data Transfer Objects)

LicensesInfo

{
    "id": "integer",
    "company_name": "string",
    "product_name": "string",
    "license_users_count": "integer",
    "exp_time": "string (datetime)",
    "machine_digest_file": "string",
    "lic_file_name": "string"
}

Поля:

  • id: Идентификатор лицензии.
  • company_name: Название компании.
  • product_name: Название продукта.
  • license_users_count: Количество пользователей лицензии.
  • exp_time: Дата истечения срока лицензии (в формате datetime).
  • machine_digest_file: Имя файла с машиным дайджестом.
  • lic_file_name: Имя файла лицензии.

User

{
    "id": "integer",
    "username": "string",
    "token": "string"
}

Поля:

  • id: Идентификатор пользователя.
  • username: Имя пользователя.
  • token: Токен авторизации.

Clone this wiki locally