messenger_via_http_server  1.0
Макросы | Перечисления | Функции
Файл db_plugin.h

Заголовочный файл, содержащий константы для прослойки и объявления некоторых функций. Подробнее...

#include "sqlite3.h"
Граф включаемых заголовочных файлов для db_plugin.h:
Граф файлов, в которые включается этот файл:

См. исходные тексты.

Макросы

#define USERNAME_MAX_LENGTH   40
 Максимальная длина имени пользователя Подробнее...
 
#define PASS_MAX_LENGTH   256
 Максимальная длина пароля Подробнее...
 

Перечисления

enum  api_op { API_OP_POST, API_OP_GET, API_OP_SET, API_OP_DEL }
 Набор возможных типов запросов к api. Подробнее...
 
enum  api_action {
  API_ACTION_NULL, API_ACTION_SEND_MESSAGE, API_ACTION_GET_MESSAGE, API_ACTION_REGISTER,
  API_ACTION_GET_USER
}
 Набор возможных запросов-действий к api. Подробнее...
 

Функции

void * db_open (const char *db_path)
 Функция открывает локальную базу данных, а если она не существует, то создаёт новую Подробнее...
 
void db_close (void **db_handle)
 Функция закрывает базу данных Подробнее...
 
char * build_message_json (const char *message_id, const char *from, const char *to, const char *message, const char *time)
 Функция формирует строку - JSON сообщение Подробнее...
 
int switch_action (const mg_str *buf)
 Функция парсит параметр action HTTP запроса Подробнее...
 
char * check_auth (const http_message *hm, void *db)
 Функция выполняет проверку авторизации Подробнее...
 
void get_message (struct mg_connection *nc, const struct http_message *hm, void *db)
 Функция api получения сообщения Подробнее...
 
void send_message (struct mg_connection *nc, const struct http_message *hm, void *db)
 Функция api отправки сообщения Подробнее...
 
char * get_user_from_db (void *db, char *user)
 Функция достаёт данные о пользователе из базы данных Подробнее...
 
void register_user (struct mg_connection *nc, const struct http_message *hm, void *db)
 Функция api регистрации нового пользователя Подробнее...
 
void get_user (struct mg_connection *nc, const struct http_message *hm, void *db)
 Функция api получения данных о пользователе Подробнее...
 
void op_post (struct mg_connection *nc, const struct http_message *hm, void *db)
 Функция-обработчик POST запроса к api. Подробнее...
 
void db_op (struct mg_connection *nc, const struct http_message *hm, void *db, int op)
 Функция-обработчик любого запроса к api. Подробнее...
 

Подробное описание

Заголовочный файл, содержащий константы для прослойки и объявления некоторых функций.

Макросы

◆ PASS_MAX_LENGTH

#define PASS_MAX_LENGTH   256

Максимальная длина пароля

◆ USERNAME_MAX_LENGTH

#define USERNAME_MAX_LENGTH   40

Максимальная длина имени пользователя

Перечисления

◆ api_action

enum api_action

Набор возможных запросов-действий к api.

Элементы перечислений
API_ACTION_NULL 

Указывает, что действие неизвестно api.

API_ACTION_SEND_MESSAGE 

Отправка сообщения

API_ACTION_GET_MESSAGE 

Получение сообщения

API_ACTION_REGISTER 

Регистрация нового пользователя

API_ACTION_GET_USER 

Получение данных о пользователе

◆ api_op

enum api_op

Набор возможных типов запросов к api.

Элементы перечислений
API_OP_POST 

POST.

API_OP_GET 

GET.

API_OP_SET 

SET.

API_OP_DEL 

DELETE.

Функции

◆ build_message_json()

char* build_message_json ( const char *  message_id,
const char *  from,
const char *  to,
const char *  message,
const char *  time 
)

Функция формирует строку - JSON сообщение

Аргументы
[in]message_idУникальный идентификатор сообщения
[in]fromОт кого адресовано сообщение
[in]toКому адресовано сообщение
[in]messageТекст сообщения
[in]timeВремя, в которое сообщение было получено сервером (UTC Unix)
Возвращает
Указатель на строку, содержащую JSON сообщение
Граф вызова функции:

◆ check_auth()

char* check_auth ( const http_message hm,
void *  db 
)

Функция выполняет проверку авторизации

Необходимо сделать:
Переписать функцию, используя функцию get_user_from_db
Аргументы
[in]hmТело HTTP запроса
[in]dbHandler базы данных
Возвращаемые значения
NULLесли пользователь не найден, или неправильный пароль
Указательна строку, содержащую имя пользователя
Граф вызовов:
Граф вызова функции:

◆ db_close()

void db_close ( void **  db_handle)

Функция закрывает базу данных

Аргументы
[in]db_handleуказатель на handler базы данных, которую необходимо закрыть
Граф вызовов:
Граф вызова функции:

◆ db_op()

void db_op ( struct mg_connection nc,
const struct http_message hm,
void *  db,
int  op 
)

Функция-обработчик любого запроса к api.

Аргументы
[in]ncСоединение, по которому нужно отправить ответ
[in]hmТело HTTP запроса
[in]dbHandler базы данных
[in]opТип запроса к api
Граф вызовов:
Граф вызова функции:

◆ db_open()

void* db_open ( const char *  db_path)

Функция открывает локальную базу данных, а если она не существует, то создаёт новую

Аргументы
[in]db_pathПуть к базе данных
Возвращает
Указатель на handler базы данных
Граф вызовов:
Граф вызова функции:

◆ get_message()

void get_message ( struct mg_connection nc,
const struct http_message hm,
void *  db 
)

Функция api получения сообщения

Функция проверяет авторизацию, достаёт из базы данных первое сообщение, которое неизвестно клиенту и отправляет ответ. В случае, если сообщение не найдено, возвращает ответ об отвутствии новых сообщений.

Аргументы
[in]ncСоединение, по которому нужно отправить ответ
[in]hmТело HTTP запроса
[in]dbHandler базы данных
Граф вызовов:
Граф вызова функции:

◆ get_user()

void get_user ( struct mg_connection nc,
const struct http_message hm,
void *  db 
)

Функция api получения данных о пользователе

Функция проверяет правильность запроса, отправляет по соединению данные о пользователе.

Аргументы
[in]ncСоединение, по которому нужно отправить ответ
[in]hmТело HTTP запроса
[in]dbHandler базы данных
Граф вызовов:
Граф вызова функции:

◆ get_user_from_db()

char* get_user_from_db ( void *  db,
char *  user 
)

Функция достаёт данные о пользователе из базы данных

Аргументы
[in]dbHandler базы данных
[in]userУказатель на строку, содержащую имя пользователя
Возвращаемые значения
NULLесли пользователь не найден в базе данных
Указательна строку, содержащую имя пользователя
Граф вызовов:
Граф вызова функции:

◆ op_post()

void op_post ( struct mg_connection nc,
const struct http_message hm,
void *  db 
)

Функция-обработчик POST запроса к api.

Аргументы
[in]ncСоединение, по которому нужно отправить ответ
[in]hmТело HTTP запроса
[in]dbHandler базы данных
Граф вызовов:
Граф вызова функции:

◆ register_user()

void register_user ( struct mg_connection nc,
const struct http_message hm,
void *  db 
)

Функция api регистрации нового пользователя

Функция проверяет правильность запроса, пытается добавить пользователя в базу данных. Результат попытки отправляет по открытому соединению.

Аргументы
[in]ncСоединение, по которому нужно отправить ответ
[in]hmТело HTTP запроса
[in]dbHandler базы данных
Граф вызовов:
Граф вызова функции:

◆ send_message()

void send_message ( struct mg_connection nc,
const struct http_message hm,
void *  db 
)

Функция api отправки сообщения

Функция проверяет авторизацию, правильность запроса, кладёт в базу данных новое сообщение.

Аргументы
[in]ncСоединение, по которому нужно отправить ответ
[in]hmТело HTTP запроса
[in]dbHandler базы данных
Граф вызовов:
Граф вызова функции:

◆ switch_action()

int switch_action ( const mg_str buf)

Функция парсит параметр action HTTP запроса

Аргументы
[in]bufТело HTTP запроса с параметрами
Возвращает
enum api_action
Граф вызовов:
Граф вызова функции: