fix: Fixing all routes

This commit is contained in:
Mangiang 2021-10-11 19:47:34 -04:00
parent 6db043ce6b
commit aae9cbac94
4 changed files with 34 additions and 12 deletions

1
.gitignore vendored
View File

@ -4,3 +4,4 @@ Homestead.json
Homestead.yaml
.env
.phpunit.result.cache
*.env.local

View File

@ -47,7 +47,7 @@ class ItemsCollection
$test = collect([$trimmed_current_locale_name => json_decode(file_get_contents("${raw_locales_global_base_url}/${trimmed_current_locale_name}.json"), true)['templates']]);
$this->locales = $this->locales->merge($test);
}
Cache::set($this->locales_cache_key, $this->locales);
Cache::put($this->locales_cache_key, $this->locales);
}
public function refreshItemsCache(): void {
@ -55,6 +55,10 @@ class ItemsCollection
Cache::put($this->items_cache_key, $this->items);
}
public function getLocales(): Collection {
return $this->locales->keys();
}
public function refreshAllCache(): void {
$this->refreshItemsCache();
$this->refreshLocalesCache();

View File

@ -23,12 +23,13 @@ class ItemController extends Controller
/**
* @param Request $request
* @param string $locale
* @return JsonResponse
*/
public function search(Request $request): JsonResponse
public function search(Request $request, string $locale = 'en'): JsonResponse
{
$status = Response::HTTP_NO_CONTENT;
$result = $this->itemsCollection->findItem($request->input('query'));
$result = $this->itemsCollection->findItem($request->input('query'), $locale);
$response = [];
if ($result->isNotEmpty()) {
$status = Response::HTTP_OK;
@ -41,12 +42,13 @@ class ItemController extends Controller
/**
* @param string $id
* @param string $locale
* @return JsonResponse
*/
public function getItem(string $id): JsonResponse
public function getItem(string $id, string $locale = 'en'): JsonResponse
{
try {
return response()->json($this->itemsCollection->getItemById($id));
return response()->json($this->itemsCollection->getItemById($id, $locale));
} catch (Throwable $exception) {
Log::error($exception->getMessage());
Log::error($exception->getTraceAsString());
@ -57,19 +59,32 @@ class ItemController extends Controller
}
/**
* @param string $id
* @return JsonResponse
*/
public function refreshItems(): JsonResponse
public function getLocales(): JsonResponse
{
try {
return response()->json($this->itemsCollection->getItemById($id));
return response()->json($this->itemsCollection->getLocales());
} catch (Throwable $exception) {
Log::error($exception->getMessage());
Log::error($exception->getTraceAsString());
return response()->json([
'error' => 'Item not found.',
'error' => 'No locale not found.',
], Response::HTTP_NOT_FOUND);
}
}
/**
* @param string $id
* @return JsonResponse
*/
public function refreshAllCache(): JsonResponse
{
try {
return response()->json($this->itemsCollection->refreshAllCache());
} catch (Throwable $exception) {
Log::error($exception->getMessage());
Log::error($exception->getTraceAsString());
}
}
}

View File

@ -17,8 +17,10 @@ $router->get('/', function () {
return view('app');
});
$router->get('/api/locales', 'ItemController@getLocales');
$router->get('/api/refresh', 'ItemController@refreshAllCache');
$router->post('/api/{locale}/search', 'ItemController@search');
$router->get('/api/item/{locale}/{id}', 'ItemController@getItem');
$router->post('/api/search', 'ItemController@search');
$router->get('/api/item/{id}/{locale}', 'ItemController@getItem');
$router->get('/api/item/{id}', 'ItemController@getItem');
$router->post('/api/search/{locale?}', 'ItemController@search');
$router->post('/api/search', 'ItemController@search');