/**
  * Create product action
  * 
  * @param  Request $request
  * @return Response
  */
 public function store(Request $request)
 {
     // check authenticate
     if (!$this->checkAuth()) {
         return response()->json(null, 401);
     }
     // check permission
     if (!$this->checkPermission('create-product')) {
         return response()->json(null, 403);
     }
     $validator = Validator::make($request->all(), ['title' => 'required', 'alias' => 'regex:/^[a-z0-9\\-]+/|unique:shop_products', 'image' => 'string', 'description' => 'string', 'price' => 'numeric', 'galleries' => 'array']);
     if ($validator->fails()) {
         return response()->json(arrayView('errors/validation', ['errors' => $validator->errors()]), 400);
     }
     $product = Product::create($request->all());
     return response()->json(arrayView('product/read', ['product' => $product]), 201);
 }