Subject | Hash | Author | Date (UTC) |
---|---|---|---|
best year | 9c830895cacc9ae9206901d3eabdc6b21488d718 | Ivaylo Iliev | 2017-08-27 21:57:46 |
fix docblock | 20f563de5a256acde8c4a2335bf5779c670c61a0 | Ivaylo Iliev | 2017-08-27 21:22:50 |
strong typing | c5314f47704760d3720f0c92bd3da9e3c7299eea | Ivaylo Iliev | 2017-08-27 21:15:11 |
change boolean to bool and add /neo/fastest?hazardous=(true|false) | aa0b6fc0d2ab78404e4677863aafae1dd27bead0 | Ivaylo Iliev | 2017-08-27 21:07:44 |
fix cases | 7fd7024355b538de353f032f69f8e4a1ee5f0b6b | Ivaylo Iliev | 2017-08-27 20:56:14 |
/neo/hazardous | 61f9c4506a8ddf037f6cd670afdaa4f38f44829c | Ivaylo Iliev | 2017-08-27 20:54:40 |
cleanup | 98f98692a290d3cd6e76b36e48be6610754640db | Ivaylo Iliev | 2017-08-27 20:54:24 |
update nasa.start with parameters | 4cec4383b574a0ac874e463cacfc006fb001f14c | Ivaylo Iliev | 2017-08-27 20:32:01 |
import from api | 41affca95695f99674971d59dc3e098ef54a934b | Ivaylo Iliev | 2017-08-27 19:34:49 |
initialize on first run | a7eb6521e87bf6f7fc8ac746db7241300473b549 | Ivaylo Iliev | 2017-08-27 17:26:30 |
update build scripts | 0ca23c79e7f0c2e0a2beae8ea676d1bc6c6c237f | Ivaylo Iliev | 2017-08-27 16:23:17 |
neo bundle, neo entity, empty command | 5df95da9f7d462e891685b5556abeae1abdd28b4 | Ivaylo Iliev | 2017-08-27 16:11:31 |
add mysql | 798d32267444f4f26ce9215817720217970c5e06 | Ivaylo Iliev | 2017-08-27 14:33:00 |
run and build script | a91daf3d789ac334eca951731504f1a17e79952d | Ivaylo Iliev | 2017-08-27 10:52:34 |
remove security checks | 613463e0180c3e812194b0bac40aaef508d99823 | Ivaylo Iliev | 2017-08-27 10:52:12 |
add nasa api key | a4f8c147880e69994a988a176298ed54dacc53db | Ivaylo Iliev | 2017-08-27 08:45:17 |
hello world json | 636f0cca5234693152d25e8a6f7f2e812b39fa16 | Ivaylo Iliev | 2017-08-27 08:29:56 |
empty symfony app | 9c121393c6caf39150b1eeaa274c978edef1425e | Ivaylo Iliev | 2017-08-26 23:05:32 |
update default nginx config | 87638100759fe5cec69d45fbbcf7bbda3464131a | Ivaylo Iliev | 2017-08-26 23:03:30 |
Initial commit | f0ac3b6d6f330c3ed2e5c760a30abf15601d0494 | Ivaylo Iliev | 2017-08-26 22:23:30 |
File | Lines added | Lines deleted |
---|---|---|
src/nasa/src/NeoBundle/Controller/DefaultController.php | 16 | 0 |
src/nasa/src/NeoBundle/Repository/NeoRepository.php | 21 | 0 |
File src/nasa/src/NeoBundle/Controller/DefaultController.php changed (mode: 100644) (index 1bdd1ab..76b509f) | |||
... | ... | class DefaultController extends Controller | |
39 | 39 | ||
40 | 40 | return $this->json($fastest); | return $this->json($fastest); |
41 | 41 | } | } |
42 | |||
43 | /** | ||
44 | * Year with most ateroids | ||
45 | * | ||
46 | * Calculate and return a year with most ateroids | ||
47 | * | ||
48 | * @Route("/neo/best-year") | ||
49 | * @return \Symfony\Component\HttpFoundation\Response | ||
50 | */ | ||
51 | public function bestYearAction(Request $request) | ||
52 | { | ||
53 | $neoRepository = $this->get('neo.repository'); | ||
54 | $year = $neoRepository->findYearWithMostRecords($request->get('hazardous', 'false') === 'true'); | ||
55 | |||
56 | return $this->json([ 'year' => $year ]); | ||
57 | } | ||
42 | 58 | } | } |
File src/nasa/src/NeoBundle/Repository/NeoRepository.php changed (mode: 100644) (index a974644..b3f3261) | |||
... | ... | namespace NeoBundle\Repository; | |
4 | 4 | ||
5 | 5 | use Doctrine\DBAL\Query\QueryBuilder; | use Doctrine\DBAL\Query\QueryBuilder; |
6 | 6 | use Doctrine\ORM\EntityRepository; | use Doctrine\ORM\EntityRepository; |
7 | use Doctrine\ORM\Query\ResultSetMapping; | ||
7 | 8 | ||
8 | 9 | use NeoBundle\Entity\Neo; | use NeoBundle\Entity\Neo; |
9 | 10 | ||
... | ... | class NeoRepository extends EntityRepository | |
42 | 43 | ->getOneOrNullResult(); | ->getOneOrNullResult(); |
43 | 44 | } | } |
44 | 45 | ||
46 | /** | ||
47 | * @param bool $isHazardous | ||
48 | * @return mixed | ||
49 | */ | ||
50 | public function findYearWithMostRecords(bool $isHazardous = false) | ||
51 | { | ||
52 | $sql = "select year(approach_at) year from neo where is_hazardous=:isHazardous group by year(approach_at) order by count(id) desc limit 1"; | ||
53 | $params = [ | ||
54 | 'isHazardous' => $isHazardous | ||
55 | ]; | ||
56 | |||
57 | $em = $this->getEntityManager(); | ||
58 | $stmt = $em->getConnection()->prepare($sql); | ||
59 | $stmt->execute($params); | ||
60 | |||
61 | $result = $stmt->fetchAll(); | ||
62 | |||
63 | return $result[0]['year']; | ||
64 | } | ||
65 | |||
45 | 66 | /** | /** |
46 | 67 | * @param bool $isHazardous | * @param bool $isHazardous |
47 | 68 | * @return bool | * @return bool |