Skip to content

Instantly share code, notes, and snippets.

@Deniallugo
Created October 10, 2019 12:47
Show Gist options
  • Save Deniallugo/2cc392fd7f80dcf677cb529421b54c78 to your computer and use it in GitHub Desktop.
Save Deniallugo/2cc392fd7f80dcf677cb529421b54c78 to your computer and use it in GitHub Desktop.
test_task_python
# Тестовое задание для Python-разработчика
##Задание:
Даны 2 json файла:post.json, в котором находится список постов.
```json
{
"posts":
[
{
"id": 1,
"title": "post_1",
"date": "2019-01-01T20:56:35",
"body": "The post",
"deleted": false
}
],
}
```
comments.json, в котором находятся комментарии к постам, сопоставление по полю "post_id".
```json
{
"comments": [
{
"id": 1,
"post_id": 1,
"title": "comment_1",
"date": "2019-01-02T21:58:25",
"comment": "Comment",
}
],
}
```
Необходимо разработать бекенд, реализующий следующее API: GET "/" - возвращает список постов следующего формата.
```json
{
"posts":
[
{
"id": 1,
"title": "post_1",
"date": "2019-01-01T20:56:35",
"body": "The post",
"comments_count": 1
},
],
"posts_count": 1,
}
```
- все записи должны быть отсортированы по дате создания (поле "date" в формате ISO 8601).
- возвращать необходимо не удаленные записи (поле "deleted").
- так же не нужно возвращать записи, время которых еще не наступило.
- необходимо возвращать количество комментариев к каждому посту (поле "comments_count").
GET "/post/{id}" - возвращает пост по его id. 

```json
{
"id": 1,
"title": "post_1",

"date": "2019-01-01T20:56:35",
"body": "The post",
"comments":
[
{
"id": 1,
"post_id": 1,
"title": "comment_1",
"date": "2019-01-02T21:58:25",
"comment": "Comment",
},
],
"comments_count": 1,
},
```
- все комментарии должны быть отсортированы по дате создания (поле "date" в формате ISO 8601).
- необходимо вернуть количество комментариев к текущей новости (поле "comments_count").
- в случае, если новости с таким id нет, необходимо вернуть код ошибки - 404.
- в случае, если запись удалена (поле "deleted"), необходимо вернуть код ошибки - 404.
- в случае, если время создания записи еще не наступило, необходимо вернуть код ошибки - 404.
##Решение
- Решение необходимо предоставить в виде git репозитория
- Язык реализации Python3.7
- Допустимые библиотеки: aiohttp, pytest
- Плюсом будет наличие тестов.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment