62 lines
1.9 KiB
Markdown
62 lines
1.9 KiB
Markdown
# Тестовое задание
|
||
|
||
**На хост машине**
|
||
|
||
```bash
|
||
make help
|
||
make build
|
||
make install
|
||
make run # заполнит базу и запустит тесты
|
||
```
|
||
|
||
Необходимо задать переменные окружения
|
||
|
||
```dotenv
|
||
WB_URL="url"
|
||
WB_API_KEY="123"
|
||
```
|
||
|
||
## Синхронизация
|
||
|
||
Инкрементальная
|
||
|
||
```php
|
||
Schedule::command('sync:all')->dailyAt('00:10');
|
||
```
|
||
|
||
Для ORDERS, SALES, INCOMES синхронизация берёт данные по завершённым дням
|
||
|
||
Первый запуск: берутся все данные с даты 2 года назад до вчерашнего дня
|
||
|
||
Последующие запуски: берётся только следующий завершённый день после последней успешной записи (date_to)
|
||
|
||
Для STOCKS всегда берётся только текущий день, так как API поддерживает только актуальные данные
|
||
|
||
Ручное управление
|
||
|
||
```bash
|
||
make sh # для входа в контейнер
|
||
```
|
||
|
||
```bash
|
||
Available commands for the "sync" namespace:
|
||
php artisan sync:all Command description
|
||
php artisan sync:incomes Sync incomes from WB API
|
||
php artisan sync:orders Sync orders from API
|
||
php artisan sync:sales Sync sales from WB API
|
||
php artisan sync:stocks Sync stocks from WB test API
|
||
```
|
||
|
||
Расширение
|
||
|
||
[Конфиг](laravel/config/wb-sync.php)
|
||
|
||
### Комментарий:
|
||
|
||
Апи может присылать полные дубли строк, думал делать вставку через upsert + уникальный ключ
|
||
например по хешу основных строк, но выбрал более простой вариант с обычным заполнением
|
||
|
||
### Ссылка на хостинг
|
||
|
||
https://pma.din9xtr.tech/
|