Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //ItemController.php - used for storing items in the database, used on retrieving items in the database
- class ItemController extends Controller {
- //stores items
- public function store(Request $request)
- {
- $data = $request->all();
- $filename = time().'.'.$request->file('item_image')->getClientOriginalExtension();
- $request->file('item_image')->move(public_path().'/img/item_images/', $filename);
- $data['image'] = $filename;
- try {
- DB::beginTransaction();
- $this->item_repository->create($data);
- DB::commit();
- $status = 'success';
- $message = 'item has been created.';
- } catch (\Exception $e) {
- $status = 'error';
- $message = 'Internal Server Error. Try again later.';
- DB::rollBack();
- dd($e->getMessage());
- }
- return redirect()->route('item.index')->with($status, $message);
- }
- //stores expression per item
- public function expression(Request $request)
- {
- $data = $request->all();
- try {
- DB::beginTransaction();
- Expression::create($data);
- DB::commit();
- $status = 'success';
- $message = 'Successfully collected expressions!';
- } catch (\Exception $e) {
- DB::rollBack();
- $status = 'error';
- $message = $e->getMessage();
- }
- return redirect()->route('item.menu')->with($status, $message);
- }
- //shows expression per item, calculates expression
- public function showExpression($id)
- {
- $item = Item::find($id);
- $expressions = $item->expressions;
- $exp_arr = [
- 'Neutral' => $expressions->avg('neutral_score'),
- 'Happy' => $expressions->avg('happy_score'),
- 'Sad' => $expressions->avg('sad_score'),
- 'Angry' => $expressions->avg('angry_score'),
- 'Fearful' => $expressions->avg('fearful_score'),
- 'Disgusted' => $expressions->avg('disgusted_score'),
- 'Surprised' => $expressions->avg('surprised_score'),
- ];
- $dominant = array_search($this->getClosest(1, $exp_arr), $exp_arr);
- foreach ($expressions as $expression) {
- $single_exp_arr = [
- 'Neutral' => $expression->neutral_score,
- 'Happy' => $expression->happy_score,
- 'Sad' => $expression->sad_score,
- 'Angry' => $expression->angry_score,
- 'Fearful' => $expression->fearful_score,
- 'Disgusted' => $expression->disgusted_score,
- 'Surprised' => $expression->surprised_score,
- ];
- $dominant_expression = array_search($this->getClosest(1, $single_exp_arr), $single_exp_arr);
- $expression->dominant = $dominant_expression;
- }
- return view('item::dominant', compact('item', 'dominant', 'expressions'));
- }
- //gets the closest expression based on the baseline set on the algorithm
- private function getClosest($search, $arr){
- $closest = null;
- foreach ($arr as $item) {
- if ($closest === null || abs($search - $closest) > abs($item - $search)) {
- $closest = $item;
- }
- }
- return $closest;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement