Size: a a a

Laravel для начинающих

2020 July 13

SV

Steam Vis in Laravel для начинающих
$car = Car::find(1);
$apiCarCode = Str::limit($car->api_code, 10, '') . '_' . $car->id;

$apiDataStartPoint = [
   'latitude'    => 51.53,
   'longitude'   => 43.54,
   'carInfo'     => $apiCarCode,
   'start_route' => 1,
   'end_route'   => 0,
];
$apiDataMiddlePoint = [
   'latitude'    => 51.71,
   'longitude'   => 43.74,
   'carInfo'     => $apiCarCode,
   'start_route' => 0,
   'end_route'   => 0,
];
$apiDataEndPoint = [
   'latitude'    => 51.9,
   'longitude'   => 43.94,
   'carInfo'     => $apiCarCode,
   'start_route' => 0,
   'end_route'   => 1,
];

$apiDataNewRoute = [
   'latitude'    => 150.9,
   'longitude'   => 70.94,
   'carInfo'     => $apiCarCode,
   'start_route' => 1,
   'end_route'   => 0,
];

$this
   ->post(route('api.gps', $apiDataStartPoint))
   ->assertStatus(200);

$this
   ->post(route('api.gps', $apiDataMiddlePoint))
   ->assertStatus(200);

$this
   ->post(route('api.gps', $apiDataEndPoint))
   ->assertStatus(200);

sleep(1);

$this
   ->post(route('api.gps', $apiDataNewRoute))
   ->assertStatus(200);


$this
   ->assertDatabaseHas('cars_points', [
       'id'        => 1,
       'car_id'    => $car->id,
       'route_id'  => 1,
       'latitude'  => $apiDataStartPoint['latitude'],
       'longitude' => $apiDataStartPoint['longitude']
   ])
   ->assertDatabaseHas('cars_points', [
       'id'        => 2,
       'car_id'    => $car->id,
       'route_id'  => 1,
       'latitude'  => $apiDataMiddlePoint['latitude'],
       'longitude' => $apiDataMiddlePoint['longitude']
   ])
   ->assertDatabaseHas('cars_points', [
       'id'        => 3,
       'car_id'    => $car->id,
       'route_id'  => 1,
       'latitude'  => $apiDataEndPoint['latitude'],
       'longitude' => $apiDataEndPoint['longitude']
   ])
   ->assertDatabaseHas('cars_routes', [
       'id'     => 1,
       'car_id' => $car->id,
   ])
   ->assertDatabaseHas('cars_routes', [
       'id'     => 2,
       'car_id' => $car->id,
   ])
   ->assertDatabaseCount('cars_route_sections', 2)
   ->assertDatabaseCount('cars_routes', 2);

там где apiDataNewRoute, до него старый маршрут завершается, а в этом начинается новый, и генератор, не должен для него генерить отрезков, а он почему-то генерит.
поставил sleep в секунду и все норм стало
как такое пофиксить?
источник

AH

Andrey Helldar in Laravel для начинающих
Steam Vis
$car = Car::find(1);
$apiCarCode = Str::limit($car->api_code, 10, '') . '_' . $car->id;

$apiDataStartPoint = [
   'latitude'    => 51.53,
   'longitude'   => 43.54,
   'carInfo'     => $apiCarCode,
   'start_route' => 1,
   'end_route'   => 0,
];
$apiDataMiddlePoint = [
   'latitude'    => 51.71,
   'longitude'   => 43.74,
   'carInfo'     => $apiCarCode,
   'start_route' => 0,
   'end_route'   => 0,
];
$apiDataEndPoint = [
   'latitude'    => 51.9,
   'longitude'   => 43.94,
   'carInfo'     => $apiCarCode,
   'start_route' => 0,
   'end_route'   => 1,
];

$apiDataNewRoute = [
   'latitude'    => 150.9,
   'longitude'   => 70.94,
   'carInfo'     => $apiCarCode,
   'start_route' => 1,
   'end_route'   => 0,
];

$this
   ->post(route('api.gps', $apiDataStartPoint))
   ->assertStatus(200);

$this
   ->post(route('api.gps', $apiDataMiddlePoint))
   ->assertStatus(200);

$this
   ->post(route('api.gps', $apiDataEndPoint))
   ->assertStatus(200);

sleep(1);

$this
   ->post(route('api.gps', $apiDataNewRoute))
   ->assertStatus(200);


$this
   ->assertDatabaseHas('cars_points', [
       'id'        => 1,
       'car_id'    => $car->id,
       'route_id'  => 1,
       'latitude'  => $apiDataStartPoint['latitude'],
       'longitude' => $apiDataStartPoint['longitude']
   ])
   ->assertDatabaseHas('cars_points', [
       'id'        => 2,
       'car_id'    => $car->id,
       'route_id'  => 1,
       'latitude'  => $apiDataMiddlePoint['latitude'],
       'longitude' => $apiDataMiddlePoint['longitude']
   ])
   ->assertDatabaseHas('cars_points', [
       'id'        => 3,
       'car_id'    => $car->id,
       'route_id'  => 1,
       'latitude'  => $apiDataEndPoint['latitude'],
       'longitude' => $apiDataEndPoint['longitude']
   ])
   ->assertDatabaseHas('cars_routes', [
       'id'     => 1,
       'car_id' => $car->id,
   ])
   ->assertDatabaseHas('cars_routes', [
       'id'     => 2,
       'car_id' => $car->id,
   ])
   ->assertDatabaseCount('cars_route_sections', 2)
   ->assertDatabaseCount('cars_routes', 2);

там где apiDataNewRoute, до него старый маршрут завершается, а в этом начинается новый, и генератор, не должен для него генерить отрезков, а он почему-то генерит.
поставил sleep в секунду и все норм стало
как такое пофиксить?
Заливай простыню куда-нибудь. Например, на https://pastebin.com/
источник

AH

Andrey Helldar in Laravel для начинающих
Steam Vis
$car = Car::find(1);
$apiCarCode = Str::limit($car->api_code, 10, '') . '_' . $car->id;

$apiDataStartPoint = [
   'latitude'    => 51.53,
   'longitude'   => 43.54,
   'carInfo'     => $apiCarCode,
   'start_route' => 1,
   'end_route'   => 0,
];
$apiDataMiddlePoint = [
   'latitude'    => 51.71,
   'longitude'   => 43.74,
   'carInfo'     => $apiCarCode,
   'start_route' => 0,
   'end_route'   => 0,
];
$apiDataEndPoint = [
   'latitude'    => 51.9,
   'longitude'   => 43.94,
   'carInfo'     => $apiCarCode,
   'start_route' => 0,
   'end_route'   => 1,
];

$apiDataNewRoute = [
   'latitude'    => 150.9,
   'longitude'   => 70.94,
   'carInfo'     => $apiCarCode,
   'start_route' => 1,
   'end_route'   => 0,
];

$this
   ->post(route('api.gps', $apiDataStartPoint))
   ->assertStatus(200);

$this
   ->post(route('api.gps', $apiDataMiddlePoint))
   ->assertStatus(200);

$this
   ->post(route('api.gps', $apiDataEndPoint))
   ->assertStatus(200);

sleep(1);

$this
   ->post(route('api.gps', $apiDataNewRoute))
   ->assertStatus(200);


$this
   ->assertDatabaseHas('cars_points', [
       'id'        => 1,
       'car_id'    => $car->id,
       'route_id'  => 1,
       'latitude'  => $apiDataStartPoint['latitude'],
       'longitude' => $apiDataStartPoint['longitude']
   ])
   ->assertDatabaseHas('cars_points', [
       'id'        => 2,
       'car_id'    => $car->id,
       'route_id'  => 1,
       'latitude'  => $apiDataMiddlePoint['latitude'],
       'longitude' => $apiDataMiddlePoint['longitude']
   ])
   ->assertDatabaseHas('cars_points', [
       'id'        => 3,
       'car_id'    => $car->id,
       'route_id'  => 1,
       'latitude'  => $apiDataEndPoint['latitude'],
       'longitude' => $apiDataEndPoint['longitude']
   ])
   ->assertDatabaseHas('cars_routes', [
       'id'     => 1,
       'car_id' => $car->id,
   ])
   ->assertDatabaseHas('cars_routes', [
       'id'     => 2,
       'car_id' => $car->id,
   ])
   ->assertDatabaseCount('cars_route_sections', 2)
   ->assertDatabaseCount('cars_routes', 2);

там где apiDataNewRoute, до него старый маршрут завершается, а в этом начинается новый, и генератор, не должен для него генерить отрезков, а он почему-то генерит.
поставил sleep в секунду и все норм стало
как такое пофиксить?
sleep(1); WAT?!
источник

SV

Steam Vis in Laravel для начинающих
Andrey Helldar
sleep(1); WAT?!
ну вот и я о том же
источник

SV

Steam Vis in Laravel для начинающих
https://pastebin.com/jDGzReqM тест
https://pastebin.com/3vW2g4iW генератор отрезков
https://pastebin.com/HBeuKvTk генератор маршрутов
источник

ДК

Дмитрий Кожанов... in Laravel для начинающих
транзакции?
источник

ДК

Дмитрий Кожанов... in Laravel для начинающих
Уровень сериализации поставить?
источник

SV

Steam Vis in Laravel для начинающих
Дмитрий Кожанов
транзакции?
не пользовался никогда ими
их надо в сам класс внедрять?
источник

AP

Alexander Pavlenko 🌚... in Laravel для начинающих
->assertDatabaseCount('cars_routes', 2);
источник

AP

Alexander Pavlenko 🌚... in Laravel для начинающих
а это что, так и должно быть, а на свежей базе тоже вот этот каунт должен быть равен 2?
источник

AP

Alexander Pavlenko 🌚... in Laravel для начинающих
а может быть меньше или больше?
проверял?
источник

R#

Reset # Alexey S. in Laravel для начинающих
Andrey Helldar
sleep(1); WAT?!
иногда без такого никак
источник

SV

Steam Vis in Laravel для начинающих
Alexander Pavlenko 🌚
->assertDatabaseCount('cars_routes', 2);
база тестовая, и там тестовый юзер, маршрутов так и должно быть 2, создается 1 с 2 отрезками и 3 точками, а за ним создается еще один, но в нем не должно быть отрезков, потому что точка только 1
а он выдает         ->assertDatabaseCount('cars_route_sections', 2)    3
источник

AH

Andrey Helldar in Laravel для начинающих
Reset # Alexey S.
иногда без такого никак
Такое встречал только в говнокоде)
источник

AP

Alexander Pavlenko 🌚... in Laravel для начинающих
Steam Vis
база тестовая, и там тестовый юзер, маршрутов так и должно быть 2, создается 1 с 2 отрезками и 3 точками, а за ним создается еще один, но в нем не должно быть отрезков, потому что точка только 1
а он выдает         ->assertDatabaseCount('cars_route_sections', 2)    3
ну ты сам проблему описал
источник

AP

Alexander Pavlenko 🌚... in Laravel для начинающих
и её решение
источник

SV

Steam Vis in Laravel для начинающих
Andrey Helldar
Такое встречал только в говнокоде)
Так суть в том, что надо сначало наговнакодить рабочее, а потом уже удалять запахи
источник

SV

Steam Vis in Laravel для начинающих
Alexander Pavlenko 🌚
ну ты сам проблему описал
не понимаю решение) Я через постман добавляю точки и все работает как надо, а в тесте валится из-за этого
источник

AH

Andrey Helldar in Laravel для начинающих
Steam Vis
Так суть в том, что надо сначало наговнакодить рабочее, а потом уже удалять запахи
Ты не прав. Нужно сразу писать нормальное, ибо на практике этот говнокод часто остаётся.
источник

SV

Steam Vis in Laravel для начинающих
Andrey Helldar
Ты не прав. Нужно сразу писать нормальное, ибо на практике этот говнокод часто остаётся.
Я стараюсь нормально писать,,но когда не умеешь, надо хоть с чего-то начинать
источник