/** * 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"); }
/** * 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'); }