Пара PHP-скриптов
Имеется RESTful сервер. Нужно к нему дописать несколько PHP скриптов.
Интересует цена вопроса и сроки.
Примерное API:
Структура БД
Таблица «game_sessions»
session_id - bigint(20)
creator_user_id - bigint(20)
oponent_user_id - bigint(20)
date_created - int(10)
turn_count - int(10)
winner_id - bigint(20) - по умолчанию значение = 0
match_drawn - int(10) - по умолчанию значение = 0
period_last_active - int(10)
Таблица «matches»
match_id - int(10) signed
session_id - bigint(20)
match_number - int(10)
step - int(10)
user_id - bigint(20)
На сервер отправляется facebookId. Сервер добавляет этот id в базу(при условии что его там нет).
game.php?actions=data_start&uid=1
Сервер возвращает список всех сессий связанных с этим id:
1
1
2
12
1
0
595712
2
2
232
0
1
0
245376
Создание игровой сессии
Данные для оправки на сервер: creator_user_id, oponent_user_id
game.php?actions=new_session&uid=2&obj[]=200
Сервер сохраняет данные, и в БД, в поле «очередь»(какого пользователя очередь делать ход) сохраняет creator_user_id, в поле «количество ходов» сохраняет 1.
Response:
13
Отправка данных о завершении хода
Если на функцию save_step параметр loose приходит со значением 1, то сервер в поле winner ставит id оппонента от полученого userId и sessionId(тоесть смотрим в базе кто является оппонентом userId в сессии sessionId и ставим в поле winner id оппонента). Также сервер сохраняет значение match_drawn в таблицу «sessions» (1 или 0).
Сервер в таблице «sessions» плюсует поле «turn_count».
Данные для отправки на сервер: user_is, session_id, loose(1-true 0-false), match_drawn(1-true 0-false),match_number (0-7), step(номер хода).
Сервер в таблицу «matches» сохраняет session_id, match_number ,step и user_id.
Запрос на получение данных
Данные для оправки на сервер: user_id, session_id
actions=data_turn&uid=2&obj[]=1
16
1
6
1
Удаление игровой сессии
Данные для оправки на сервер: session_id
actions=del_session&uid=2&obj[]=1
В случае выигрыша oponent_user_id, в БД будет записано creator_user_id = oponent_user_id, oponent_user_id = creator_user_id
Сервер удаляет все данные в таблице связанные с етой сессией, обнуляет значение для поля «количество ходов»(точнее ставит 1), обнуляет поле winner.
0