/**
  * Store a newly created resource in storage.
  *
  * @param  Request  $request
  * @return Response
  */
 public function store(Request $request)
 {
     $this->validate($request, ['terminal' => 'required|max:100']);
     $terminal = new Terminal();
     $terminal->terminal = $request->terminal;
     $terminal->active = $request->active == '1' ? 1 : 0;
     $terminal->token = md5(uniqid(mt_rand(), true));
     $terminal->save();
     Session::flash('flash_message', 'Terminal successfully added!');
     return redirect()->route("terminal.index");
 }
Example #2
0
 /**
  * Connect a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function connect(TerminalSender $sender, Request $request, $server)
 {
     $server = Server::query()->findOrFail($server);
     $sender->setCredentials($server->uri);
     $data = $request->only(['name', 'operator_id', 'point_of_sale']);
     $packet = new DataPacket();
     $packet->addRequiredPair('Username', $server->username);
     $packet->addRequiredPair('Password', $server->password);
     $packet->addPair('global_id', $data['operator_id']);
     $packet->addPair('PointOfSale', $data['point_of_sale']);
     $packet->addPair('version_id', '1.0');
     $result = $sender->send('RequestConnection', $packet);
     if (empty($result)) {
         throw new \RuntimeException();
     }
     $result = $sender->resultToArray($result);
     if (Arr::get($result, 'Result') != 'OK') {
         throw new \RuntimeException('Error');
     }
     $terminal = new Terminal(['name' => Arr::get($data, 'name'), 'operator_id' => Arr::get($data, 'operator_id'), 'point_of_sale' => Arr::get($data, 'point_of_sale'), 'external_id' => Arr::get($result, 'TerminalID'), 'guid' => Arr::get($result, 'GlobalID'), 'password' => Arr::get($result, 'Password'), 'server_id' => $server->id]);
     $terminal->save();
     return redirect()->action('\\' . static::class . '@index', [$server->id])->with('message-success', 'Terminal ' . $terminal->id . ' connected');
 }