management updates

This commit is contained in:
glmdev
2019-02-10 00:09:56 -06:00
parent 1c9c41ab8c
commit 90f97a5453
15 changed files with 605 additions and 87 deletions

View File

@@ -40,9 +40,10 @@ Route::post('/lot/post', function(\Illuminate\Http\Request $request) {
$lot_object = new ParkingLot([
'firebase_id' => 'Lot',
'stall_coordinates' => '',
'ref_coords' => '',
'reference_image' => $name,
'number_of_columns' => $request->get('numcols'),
'name' => $request->get('name')
'name' => $request->get('name'),
]);
$lot_object->save();
@@ -122,5 +123,86 @@ Route::post('/lot/generate', function(\Illuminate\Http\Request $request){
echo $request->get('coords');
return redirect(url('/lot/reference/'.$lot_object->id));
});
Route::get('/lot/reference/{id}', function($id){
$lot_object = ParkingLot::find($id);
return view('lot.selectrefs', ['lot'=>$lot_object]);
});
Route::post('/lot/reference/{id}', function(\Illuminate\Http\Request $request, $id){
$lot_object = ParkingLot::find($id);
$lot_object->ref_coords = $request->get('coords');
$lot_object->save();
$db = new FirestoreClient();
$doc_ref = $db->collection('lots')->document($lot_object->firebase_id)->collection('info')->document('lotInfo');
$doc_ref_base = $doc_ref->snapshot()->data();
$doc_ref_base['reference_coords'] = $lot_object->ref_coords;
$doc_ref->set($doc_ref_base);
return redirect(url('/lot/success'));
});
Route::get('/lot/success', function(){
return view('lot.success');
});
Route::get('/lot/manage', function(\Illuminate\Http\Request $request){
// dd(ParkingLot::getFB());
return view('lot.manage', ['lots' => ParkingLot::getFB()]);
});
Route::get('/lot/manage/{id}', function(\Illuminate\Http\Request $request, $id){
$lot = ParkingLot::getFBbyID($id);
$db = new FirestoreClient();
$doc_ref = $db->collection('lots')->document($lot['id'])->collection('stalls')->documents();
$stalls = [];
foreach( $doc_ref as $stall ){
array_push($stalls, ['id' => $stall->id(), 'data' => $stall->data()]);
}
usort($stalls, function($a, $b){
return $a['data']['locationY'] <=> $b['data']['locationY'];
});
$stalls = array_chunk($stalls, (int) $lot['data']['columns']);
foreach($stalls as $key=>$stall_grp ){
usort($stall_grp, function($a, $b) {
return $a['data']['locationX'] <=> $b['data']['locationX'];
});
$stalls[$key] = $stall_grp;
}
return view('lot.manageone', ['lot' => $lot, 'stalls' => $stalls, 'thruid' => $id]);
});
Route::get('/device/add', function(){
return view('device.add');
});
Route::post('/device/add', function(\Illuminate\Http\Request $request){
$db = new FirestoreClient();
$ref = $db->collection('configurations')->document(str_replace(' ', '-', $request->get('code')));
$ref->set([
'activation' => str_replace(' ', '-', $request->get('code')),
'e_hat' => $request->get('ehat'),
'lot_id' => $request->get('lotid'),
'stream' => $request->get('camera'),
]);
return redirect(url('/device/get/'.str_replace(' ', '-', $request->get('code'))));
});
Route::get('/device/get/{code}', function ($code) {
$db = new FirestoreClient();
$ref = $db->collection('configurations')->document($code)->snapshot();
return view('device.get', ['device' => ['id' => $ref->id(), 'data' => $ref->data()]]);
});