Текущие таски - noilpa/technopark GitHub Wiki

На этой странице собрано описание текущих тасков

Анечка

Написать хендлер для авторизации с выдачей токена, деавторизации и регистрации, а также функцию для получения username по токену.

Запрос POST /auth/:

params["login"] = "sheldon"
params["pass"] = "iloveamy"

Успех

{
  "token" : "токен"
}

Ошибка

{
  "error_description" : "описание ошибки"
}

Запрос POST /signup/:

params["login"] = "sheldon"
params["email"] = "[email protected]"
params["pass"] = "iloveamy"

Успех

{
  "token" : "токен"
}

Ошибка

{
  "error_description" : "описание ошибки"
}

Функция getUsernameByToken

func getUsernameByToken (token string) string {
  
}

Илья

Написать общий хендлер, который парсит запрос и в разобранном виде направляет его функции query.

Функция query объявлена так:

func query (responseType int, requestType int, params map[string]string, conditions []condition) {
}

Пройдемся по каждому из аргументов:

  1. responseType определяет тип ответа и принимает одну из следующих констант:
const (
	StringArray = 0
	DictArray   = 1
	Dict        = 2
)

StringArray - массив строк, например:

["firstDatabase", "secondDatabase", "thirdDatabase"]

DictArray - массив словарей (JSON), например:

[
  {
    "name" : "Sheldon",
    "age" : 42
  },
  ...
]

Dict - один словарь (JSON), например:

{
  "name" : "Sheldon",
  "age" : 42
}
  1. requestType определяет тип запроса и принимает одну из следующих констант:
const (
	DatabasesList  = 0
	TablesList     = 1
	WholeTable     = 2
	TableQuery     = 3
	InsertElement  = 4
	TableElement   = 5
	RemoveElement  = 6
	CreateTable    = 7
	CreateDatabase = 8
	RemoveTable    = 9
	RemoveDatabase = 10
)

Все запросы описаны в Markdown файле из чата. Виды запросов:

1) Вид ответа: Список строк 
	1.1) Возвращает список баз данных = DatabasesList
	1.2) Возвращает список таблиц в базе данных = TablesList

2) Вид ответа: Список словарей (JSON) 
	2.1) Возвращает всю таблицу = WholeTable
	2.2) Запрос элементов таблицы с условием = TableQuery
	
3) Вид ответа: Словарь 
	3.1) Добавление элемента в таблицу = InsertElement
	3.2) Возвращает элемент таблицы по идентификатору = TableElement
	3.3) Удаление элемента из таблицы = RemoveElement
	3.4) Создание таблицы = CreateTable
	3.5) Создание базы данных = CreateDatabase
	3.6) Удаление таблицы = RemoveTable
	3.7) Удаление базы данных = RemoveDatabase

  1. В словаре params передаются параметры, необходимые для выполнения запроса. Ключи - строки, следующие константы:
const (
	DatabaseName      = "DatabaseName"
	TableName         = "TableName"
	ElementIdentifier = "ElementIdentifier"
)

В случае отсутствия параметров передается пустой словарь или nil.

  1. Слайс условий. Условия записываются в виде массива таких структур:
type condition struct {
	fieldName string 
	operator  int 	
	value     int      
}

Поле operator принимает следующие константы:

const (
	Less        = 0
	LessOrEqual = 1
	More        = 2
	MoreOrEqual = 3
	Equal       = 4
)