From 3314e3eb3353cce5b07e10d52ae3934864207752 Mon Sep 17 00:00:00 2001 From: aqeebimtiaz Date: Tue, 24 Apr 2018 14:19:14 +0800 Subject: [PATCH 01/13] company migration --- app/Company.php | 10 +++++ app/Http/Controllers/CompanyController.php | 10 +++++ composer.lock | 2 +- config/database.php | 2 +- ...18_04_24_034401_create_companies_table.php | 42 +++++++++++++++++++ 5 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 app/Company.php create mode 100644 app/Http/Controllers/CompanyController.php create mode 100644 database/migrations/2018_04_24_034401_create_companies_table.php diff --git a/app/Company.php b/app/Company.php new file mode 100644 index 0000000..46c5dd0 --- /dev/null +++ b/app/Company.php @@ -0,0 +1,10 @@ + 'mysql', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), - 'database' => env('DB_DATABASE', 'forge'), + 'database' => env('DB_DATABASE', 'forgzze'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), diff --git a/database/migrations/2018_04_24_034401_create_companies_table.php b/database/migrations/2018_04_24_034401_create_companies_table.php new file mode 100644 index 0000000..eda932e --- /dev/null +++ b/database/migrations/2018_04_24_034401_create_companies_table.php @@ -0,0 +1,42 @@ +increments('id'); + $table->string('company-name'); + $table->string('registration-no'); + $table->string('tax-no'); + $table->string('tel-no'); + $table->string('fax'); + $table->string('address'); + $table->string('city'); + $table->string('postcode'); + $table->string('state'); + $table->string('country'); + $table->string('contact-person'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('companies'); + } +} From 3b00c6aba77709becf1249afec816b50b0bafd57 Mon Sep 17 00:00:00 2001 From: aqeebimtiaz Date: Thu, 26 Apr 2018 16:43:19 +0800 Subject: [PATCH 02/13] added update company added create company --- .../migrations/2018_04_24_034401_create_companies_table.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/database/migrations/2018_04_24_034401_create_companies_table.php b/database/migrations/2018_04_24_034401_create_companies_table.php index eda932e..138fcf3 100644 --- a/database/migrations/2018_04_24_034401_create_companies_table.php +++ b/database/migrations/2018_04_24_034401_create_companies_table.php @@ -18,8 +18,8 @@ class CreateCompaniesTable extends Migration $table->string('company-name'); $table->string('registration-no'); $table->string('tax-no'); - $table->string('tel-no'); - $table->string('fax'); + $table->integer('tel-no'); + $table->integer('fax'); $table->string('address'); $table->string('city'); $table->string('postcode'); From c6b5c0d3f26abb12230ed06eac3382110accb01c Mon Sep 17 00:00:00 2001 From: aqeebimtiaz Date: Thu, 26 Apr 2018 16:43:40 +0800 Subject: [PATCH 03/13] added create company added update company --- Dockerfile | 6 +- app/Company.php | 2 + app/Http/Controllers/CompanyController.php | 106 ++++- composer.json | 1 + composer.lock | 361 +++++++++++++++++- ...18_04_24_034401_create_companies_table.php | 1 + ..._04_25_083636_rename_column_in_company.php | 35 ++ resources/views/home.blade.php | 0 routes/api.php | 18 +- routes/web.php | 2 + 10 files changed, 525 insertions(+), 7 deletions(-) create mode 100644 database/migrations/2018_04_25_083636_rename_column_in_company.php create mode 100644 resources/views/home.blade.php diff --git a/Dockerfile b/Dockerfile index f78c24a..4c4eaed 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,11 @@ FROM php:7 + +WORKDIR /app +COPY . /app + RUN apt-get update -y && apt-get install -y openssl zip unzip git RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer RUN docker-php-ext-install pdo pdo_mysql -WORKDIR /app -COPY . /app RUN composer install CMD php artisan serve --host=0.0.0.0 --port=8000 EXPOSE 8000 \ No newline at end of file diff --git a/app/Company.php b/app/Company.php index 46c5dd0..2577a90 100644 --- a/app/Company.php +++ b/app/Company.php @@ -7,4 +7,6 @@ use Illuminate\Database\Eloquent\Model; class Company extends Model { // + protected $fillable = ['company_name', 'registration_no', 'tax_no', 'tel_no', 'fax', 'address', 'city', 'postcode', 'state', 'country', 'contact_person']; + //protected $guarded = []; } diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index 7a52e33..b76c81f 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -3,8 +3,112 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; +use App\Company; class CompanyController extends Controller { - // + /** + * Display a listing of the resource. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + // + return view ('home'); + } + + /** + * Show the form for creating a new resource. + * + * @return \Illuminate\Http\Response + */ + public function create() + { + // + } + + /** + * Store a newly created resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function store(Request $request) + { + // + //$company = new Company; + Company::create(request()->all()); + //dd(request()->all()); + return redirect('/'); + } + + /** + * Display the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function show($id) + { + // + } + + /** + * Show the form for editing the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function edit($id) + { + // + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(Request $request, $id) + { + $company = Company::find($id); + if (!$company) + { + return response()->json(['message'=>'Document not found'],200); + } + //$warehouse->address='juhgfd'; + $company->company_name=$request->input('company_name'); + $company->registration_no=$request->input('registration_no'); + $company->tax_no=$request->input('tax_no'); + $company->tel_no=$request->input('tel_no'); + $company->fax=$request->input('fax'); + $company->address=$request->input('address'); + $company->city=$request->input('city'); + $company->postcode=$request->input('postcode'); + $company->state=$request->input('state'); + $company->country=$request->input('country'); + $company->contact_person=$request->input('contact_person'); + $company->save(); + return response()->json(['warehouse'=>$company],200); + // $product = Company::findOrFail($productId); + // $product->update($request->all()); + // $product->company_name = 'imagepath'; + // $product->save(); + + //return response()->json($product, 200); + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + // + } } diff --git a/composer.json b/composer.json index 9b16a71..371c8fa 100644 --- a/composer.json +++ b/composer.json @@ -6,6 +6,7 @@ "type": "project", "require": { "php": "^7.1.3", + "doctrine/dbal": "^2.7", "fideloper/proxy": "^4.0", "laravel/framework": "5.6.*", "laravel/tinker": "^1.0", diff --git a/composer.lock b/composer.lock index 786ee02..dd744a3 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "f2d9e6ec1c09918f1f3130aa31e04472", + "content-hash": "da90d5fb2239697082944d7ce2a406b4", "packages": [ { "name": "dnoegel/php-xdg-base-dir", @@ -39,6 +39,363 @@ "description": "implementation of xdg base directory specification for php", "time": "2014-10-24T07:27:01+00:00" }, + { + "name": "doctrine/annotations", + "version": "v1.6.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/annotations.git", + "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5", + "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5", + "shasum": "" + }, + "require": { + "doctrine/lexer": "1.*", + "php": "^7.1" + }, + "require-dev": { + "doctrine/cache": "1.*", + "phpunit/phpunit": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Docblock Annotations Parser", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "annotations", + "docblock", + "parser" + ], + "time": "2017-12-06T07:11:42+00:00" + }, + { + "name": "doctrine/cache", + "version": "v1.7.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "b3217d58609e9c8e661cd41357a54d926c4a2a1a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/b3217d58609e9c8e661cd41357a54d926c4a2a1a", + "reference": "b3217d58609e9c8e661cd41357a54d926c4a2a1a", + "shasum": "" + }, + "require": { + "php": "~7.1" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" + }, + "require-dev": { + "alcaeus/mongo-php-adapter": "^1.1", + "mongodb/mongodb": "^1.1", + "phpunit/phpunit": "^5.7", + "predis/predis": "~1.0" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Caching library offering an object-oriented API for many cache backends", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "cache", + "caching" + ], + "time": "2017-08-25T07:02:50+00:00" + }, + { + "name": "doctrine/collections", + "version": "v1.5.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/collections.git", + "reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf", + "reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "doctrine/coding-standard": "~0.1@dev", + "phpunit/phpunit": "^5.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Collections\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Collections Abstraction library", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "array", + "collections", + "iterator" + ], + "time": "2017-07-22T10:37:32+00:00" + }, + { + "name": "doctrine/common", + "version": "v2.8.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/common.git", + "reference": "f68c297ce6455e8fd794aa8ffaf9fa458f6ade66" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/common/zipball/f68c297ce6455e8fd794aa8ffaf9fa458f6ade66", + "reference": "f68c297ce6455e8fd794aa8ffaf9fa458f6ade66", + "shasum": "" + }, + "require": { + "doctrine/annotations": "1.*", + "doctrine/cache": "1.*", + "doctrine/collections": "1.*", + "doctrine/inflector": "1.*", + "doctrine/lexer": "1.*", + "php": "~7.1" + }, + "require-dev": { + "phpunit/phpunit": "^5.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Common Library for Doctrine projects", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "annotations", + "collections", + "eventmanager", + "persistence", + "spl" + ], + "time": "2017-08-31T08:43:38+00:00" + }, + { + "name": "doctrine/dbal", + "version": "v2.7.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "11037b4352c008373561dc6fc836834eed80c3b5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/11037b4352c008373561dc6fc836834eed80c3b5", + "reference": "11037b4352c008373561dc6fc836834eed80c3b5", + "shasum": "" + }, + "require": { + "doctrine/common": "^2.7.1", + "ext-pdo": "*", + "php": "^7.1" + }, + "require-dev": { + "doctrine/coding-standard": "^4.0", + "phpunit/phpunit": "^7.0", + "phpunit/phpunit-mock-objects": "!=3.2.4,!=3.2.5", + "symfony/console": "^2.0.5||^3.0", + "symfony/phpunit-bridge": "^3.4.5|^4.0.5" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." + }, + "bin": [ + "bin/doctrine-dbal" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\DBAL\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Database Abstraction Layer", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "database", + "dbal", + "persistence", + "queryobject" + ], + "time": "2018-04-07T18:44:18+00:00" + }, { "name": "doctrine/inflector", "version": "v1.3.0", @@ -2781,7 +3138,7 @@ ], "authors": [ { - "name": "Pádraic Brady", + "name": "Padraic Brady", "email": "padraic.brady@gmail.com", "homepage": "http://blog.astrumfutura.com" }, diff --git a/database/migrations/2018_04_24_034401_create_companies_table.php b/database/migrations/2018_04_24_034401_create_companies_table.php index 138fcf3..e8df029 100644 --- a/database/migrations/2018_04_24_034401_create_companies_table.php +++ b/database/migrations/2018_04_24_034401_create_companies_table.php @@ -15,6 +15,7 @@ class CreateCompaniesTable extends Migration { Schema::create('companies', function (Blueprint $table) { $table->increments('id'); + //$table->string('company-profile'); //need to check about storage type $table->string('company-name'); $table->string('registration-no'); $table->string('tax-no'); diff --git a/database/migrations/2018_04_25_083636_rename_column_in_company.php b/database/migrations/2018_04_25_083636_rename_column_in_company.php new file mode 100644 index 0000000..b2f3f0d --- /dev/null +++ b/database/migrations/2018_04_25_083636_rename_column_in_company.php @@ -0,0 +1,35 @@ +renameColumn('company-profile', 'company_profile'); + $table->renameColumn('"company-name"', 'company_name'); + $table->renameColumn('"registration-no"', 'registration_no'); + $table->renameColumn('"tax-no"', 'tax_no'); + $table->renameColumn('"tel-no"', 'tel_no'); + $table->renameColumn('"contact-person"', 'contact_person'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/routes/api.php b/routes/api.php index aff41ed..55b20db 100644 --- a/routes/api.php +++ b/routes/api.php @@ -1,7 +1,7 @@ ['jwt.auth']], function() { Route::get('test', function(){ return response()->json(['foo'=>'bar']); }); -}); \ No newline at end of file +}); +Route::post('/company', 'CompanyController@store'); +Route::put('/company/{company}', 'CompanyController@update'); + +// Route::put('company/{company}', function(Request $request, $productId) { +// $product = Company::findOrFail($productId); +// $product->update($request->all()); +// return $product; +// }); + +// Route::put('company/{company}', function(Request $request, $companyId) { +// $company = Product::findOrFail($companyId); +// $company->update($request->all()); +// return $company; +// }); \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 829e44a..9fbc7a2 100644 --- a/routes/web.php +++ b/routes/web.php @@ -17,3 +17,5 @@ Route::get('/', function () { Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.request'); Route::post('password/reset', 'Auth\ResetPasswordController@postReset')->name('password.reset'); + +Route::get('/company', 'CompanyController@index'); From 6c5e0b6e0edb695e636b30fd7c719d2b55507e39 Mon Sep 17 00:00:00 2001 From: Aqeeb Imtiaz Harun Date: Wed, 2 May 2018 16:34:39 +0800 Subject: [PATCH 04/13] added the image upload for company profile --- app/Company.php | 2 +- app/Http/Controllers/CompanyController.php | 47 ++++- composer.json | 1 + composer.lock | 187 +++++++++++++++++- config/app.php | 4 +- ...18_04_24_034401_create_companies_table.php | 2 +- public/uploads/company_profile/hello.jpg | Bin 0 -> 21910 bytes routes/api.php | 2 + 8 files changed, 237 insertions(+), 8 deletions(-) create mode 100644 public/uploads/company_profile/hello.jpg diff --git a/app/Company.php b/app/Company.php index 2577a90..bf7df8d 100644 --- a/app/Company.php +++ b/app/Company.php @@ -7,6 +7,6 @@ use Illuminate\Database\Eloquent\Model; class Company extends Model { // - protected $fillable = ['company_name', 'registration_no', 'tax_no', 'tel_no', 'fax', 'address', 'city', 'postcode', 'state', 'country', 'contact_person']; + protected $fillable = ['company_profile', 'company_name', 'registration_no', 'tax_no', 'tel_no', 'fax', 'address', 'city', 'postcode', 'state', 'country', 'contact_person']; //protected $guarded = []; } diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index b76c81f..b24d69e 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Company; +use Image; class CompanyController extends Controller { @@ -38,9 +39,32 @@ class CompanyController extends Controller { // //$company = new Company; - Company::create(request()->all()); + // if($request->hasFile('avatar')) + // { + // $avatar = $request->file('avatar'); + // $filename = time() . '.' . $avatar->getClientOriginalExtension(); + // Image::make($avatar)->resize(300,300)->save(public_path('/uploads/company_profile/'.$filename)); + // } + // else + // { + // return response()->json(['message'=>'Document not found']); + // } + $input = $request->all(); + if($file = $request->file('company_profile')) + { + $name = $file->getClientOriginalName(); + $img_file = $request->file('company_profile'); + + Image::make($img_file)->resize(300,300)->save(public_path('uploads\company_profile\hello.jpg')); + return $img_file; + // $file->move('uploads/company_profile/', $img_file); + + $input['company_profile'] = $name; + } + Company::create($input); + //Company::create(request()->all()); //dd(request()->all()); - return redirect('/'); + // return redirect('/'); } /** @@ -80,6 +104,13 @@ class CompanyController extends Controller return response()->json(['message'=>'Document not found'],200); } //$warehouse->address='juhgfd'; + if($request->hasFile('avatar')) + { + $avatar = $request->file('avatar'); + $filename = time() . '.' . $avatar->getClientOriginalExtension(); + Image::make($avatar)->resize(300,300)->save(public_path('/uploads/company_profile/'.$filename)); + } + $company->company_name=$request->input('company_name'); $company->registration_no=$request->input('registration_no'); $company->tax_no=$request->input('tax_no'); @@ -111,4 +142,14 @@ class CompanyController extends Controller { // } -} + + public function uploadImage($request) + { + // if($request->hasFile('avatar')) + // { + // $avatar = $request->file('avatar'); + // $filename = time() . '.' . $avatar->getClientOriginalExtension(); + // Image::make($avatar)->resize(300,300)->save(public_path('/uploads/company_profile/'.$filename)); + // } + } +} \ No newline at end of file diff --git a/composer.json b/composer.json index 371c8fa..2443b2c 100644 --- a/composer.json +++ b/composer.json @@ -8,6 +8,7 @@ "php": "^7.1.3", "doctrine/dbal": "^2.7", "fideloper/proxy": "^4.0", + "intervention/image": "^2.4", "laravel/framework": "5.6.*", "laravel/tinker": "^1.0", "tymon/jwt-auth": "dev-develop" diff --git a/composer.lock b/composer.lock index dd744a3..044ce6d 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "da90d5fb2239697082944d7ce2a406b4", + "content-hash": "ad4497779e1657228811439be2faf961", "packages": [ { "name": "dnoegel/php-xdg-base-dir", @@ -723,6 +723,141 @@ ], "time": "2018-02-07T20:20:57+00:00" }, + { + "name": "guzzlehttp/psr7", + "version": "1.4.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c", + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Schultze", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "request", + "response", + "stream", + "uri", + "url" + ], + "time": "2017-03-20T17:10:46+00:00" + }, + { + "name": "intervention/image", + "version": "2.4.1", + "source": { + "type": "git", + "url": "https://github.com/Intervention/image.git", + "reference": "3603dbcc9a17d307533473246a6c58c31cf17919" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Intervention/image/zipball/3603dbcc9a17d307533473246a6c58c31cf17919", + "reference": "3603dbcc9a17d307533473246a6c58c31cf17919", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "guzzlehttp/psr7": "~1.1", + "php": ">=5.4.0" + }, + "require-dev": { + "mockery/mockery": "~0.9.2", + "phpunit/phpunit": "^4.8 || ^5.7" + }, + "suggest": { + "ext-gd": "to use GD library based image processing.", + "ext-imagick": "to use Imagick based image processing.", + "intervention/imagecache": "Caching extension for the Intervention Image library" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + }, + "laravel": { + "providers": [ + "Intervention\\Image\\ImageServiceProvider" + ], + "aliases": { + "Image": "Intervention\\Image\\Facades\\Image" + } + } + }, + "autoload": { + "psr-4": { + "Intervention\\Image\\": "src/Intervention/Image" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Oliver Vogel", + "email": "oliver@olivervogel.com", + "homepage": "http://olivervogel.com/" + } + ], + "description": "Image handling and manipulation library with support for Laravel integration", + "homepage": "http://image.intervention.io/", + "keywords": [ + "gd", + "image", + "imagick", + "laravel", + "thumbnail", + "watermark" + ], + "time": "2017-09-21T16:29:17+00:00" + }, { "name": "jakub-onderka/php-console-color", "version": "0.1", @@ -1496,6 +1631,56 @@ ], "time": "2017-02-14T16:28:37+00:00" }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "time": "2016-08-06T14:39:51+00:00" + }, { "name": "psr/log", "version": "1.0.2", diff --git a/config/app.php b/config/app.php index 3dc5bca..f4eaea2 100644 --- a/config/app.php +++ b/config/app.php @@ -159,7 +159,7 @@ return [ // App\Providers\BroadcastServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, - + Intervention\Image\ImageServiceProvider::class ], /* @@ -210,7 +210,7 @@ return [ 'View' => Illuminate\Support\Facades\View::class, 'JWTAuth' => Tymon\JWTAuth\Facades\JWTAuth::class, 'JWTFactory' => Tymon\JWTAuth\Facades\JWTFactory::class, - + 'Image' => Intervention\Image\Facades\Image::class ], ]; diff --git a/database/migrations/2018_04_24_034401_create_companies_table.php b/database/migrations/2018_04_24_034401_create_companies_table.php index e8df029..a50bae1 100644 --- a/database/migrations/2018_04_24_034401_create_companies_table.php +++ b/database/migrations/2018_04_24_034401_create_companies_table.php @@ -15,7 +15,7 @@ class CreateCompaniesTable extends Migration { Schema::create('companies', function (Blueprint $table) { $table->increments('id'); - //$table->string('company-profile'); //need to check about storage type + $table->string('company_profile');//->default('default.jpg'); //need to check about storage type $table->string('company-name'); $table->string('registration-no'); $table->string('tax-no'); diff --git a/public/uploads/company_profile/hello.jpg b/public/uploads/company_profile/hello.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a778bbfc4ce20ecf6162beb085394a4f7a7e2eac GIT binary patch literal 21910 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 PQQ6HQ8uz#8^E>_vfuJiZ literal 0 HcmV?d00001 diff --git a/routes/api.php b/routes/api.php index 55b20db..2f0c3a6 100644 --- a/routes/api.php +++ b/routes/api.php @@ -30,6 +30,8 @@ Route::group(['middleware' => ['jwt.auth']], function() { Route::post('/company', 'CompanyController@store'); Route::put('/company/{company}', 'CompanyController@update'); +//Route::post('/company', 'CompanyController@uploadImage'); + // Route::put('company/{company}', function(Request $request, $productId) { // $product = Company::findOrFail($productId); // $product->update($request->all()); From 2da890f36eaaf024e8d467c93d5379f72eb453c1 Mon Sep 17 00:00:00 2001 From: Aqeeb Imtiaz Harun Date: Mon, 7 May 2018 11:11:57 +0800 Subject: [PATCH 05/13] added file upload for both company profile picture and registration certificate --- app/Company.php | 2 +- app/Http/Controllers/CompanyController.php | 93 +++++++++++++++--- config/app.php | 2 +- ...18_04_24_034401_create_companies_table.php | 1 + public/company_profile | Bin 0 -> 26593 bytes public/uploads/company_profile/hello.jpg | Bin 21910 -> 26593 bytes public/uploads/reg_cert/reg_cert.jpg | Bin 0 -> 26593 bytes routes/api.php | 4 +- storage/app/public/.gitignore | 2 - 9 files changed, 85 insertions(+), 19 deletions(-) create mode 100644 public/company_profile create mode 100644 public/uploads/reg_cert/reg_cert.jpg delete mode 100644 storage/app/public/.gitignore diff --git a/app/Company.php b/app/Company.php index bf7df8d..af4bf8d 100644 --- a/app/Company.php +++ b/app/Company.php @@ -7,6 +7,6 @@ use Illuminate\Database\Eloquent\Model; class Company extends Model { // - protected $fillable = ['company_profile', 'company_name', 'registration_no', 'tax_no', 'tel_no', 'fax', 'address', 'city', 'postcode', 'state', 'country', 'contact_person']; + protected $fillable = ['company_profile', 'reg_cert', 'company_name', 'registration_no', 'tax_no', 'tel_no', 'fax', 'address', 'city', 'postcode', 'state', 'country', 'contact_person']; //protected $guarded = []; } diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index b24d69e..c4297d2 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Company; use Image; +use Illuminate\Support\Facades\Storage; class CompanyController extends Controller { @@ -50,21 +51,65 @@ class CompanyController extends Controller // return response()->json(['message'=>'Document not found']); // } $input = $request->all(); - if($file = $request->file('company_profile')) + + //validating uploaded files + // $this->validate(request(),[ + // 'company_profile' => 'required|image|mimes:jpg,jpeg,bmp,png', + // 'reg_cerf' => 'required|mimes:jpg,jpeg,bmp,png,gif,svg,pdf' + // ]); + + if($file = $request->file('company_profile')) //company profile picture { - $name = $file->getClientOriginalName(); - $img_file = $request->file('company_profile'); + $company_profile = $request->file('company_profile'); + $filename = $company_profile->getClientOriginalName(); + //$destinationPath = config('app.fileDestinationPath').'/'.$filename; - Image::make($img_file)->resize(300,300)->save(public_path('uploads\company_profile\hello.jpg')); - return $img_file; - // $file->move('uploads/company_profile/', $img_file); + $file = $request->file('company_profile'); + $ext = $file->getClientOriginalExtension(); - $input['company_profile'] = $name; + Storage::putFileAs( + 'company_profile',/*folder name*/ $file, $filename. '.' .$ext + ); + + // $name = $file->getClientOriginalName(); + // $img_file = $request->file('company_profile'); + // Image::make($img_file)->resize(300,300)->save(public_path('\company_profile')); + // //return $img_file; + // // $file->move('uploads/company_profile/', $img_file); + + // $input['company_profile'] = $name; } + + if($request->hasFile('reg_cert')) //Registration Certificate upload + { + $reg_cert = $request->file('reg_cert'); + $filename = $reg_cert->getClientOriginalName(); + //$destinationPath = config('app.fileDestinationPath').'/'.$filename; + + $file = $request->file('reg_cert'); + $ext = $file->getClientOriginalExtension(); + + Storage::putFileAs( + 'reg_cert',/*folder name*/ $file, $filename. '.' .$ext + ); + + // $uploaded = Storage::put($destinationPath, file_get_contents($reg_cert->getRealPath())); + // $name = $file->getClientOriginalName(); + // $img_file = $request->file('reg_cert'); + // Image::make($img_file)->save(public_path('uploads\reg_cert')); + + // $input['company_profile'] = $name; + // $request->file('req_cert'); + // //$request->image->store('\uploads\reg_cert'); + // Storage::putFile('uploads\reg_cert', $request->file('reg_cert')); + } + // else{ + // return "failed"; + // } Company::create($input); //Company::create(request()->all()); //dd(request()->all()); - // return redirect('/'); + return redirect('/'); } /** @@ -103,12 +148,34 @@ class CompanyController extends Controller { return response()->json(['message'=>'Document not found'],200); } - //$warehouse->address='juhgfd'; - if($request->hasFile('avatar')) + //updating company profile picture + if($file = $request->file('company_profile')) //company profile picture { - $avatar = $request->file('avatar'); - $filename = time() . '.' . $avatar->getClientOriginalExtension(); - Image::make($avatar)->resize(300,300)->save(public_path('/uploads/company_profile/'.$filename)); + $company_profile = $request->file('company_profile'); + $filename = $company_profile->getClientOriginalName(); + //$destinationPath = config('app.fileDestinationPath').'/'.$filename; + + $file = $request->file('company_profile'); + $ext = $file->getClientOriginalExtension(); + + Storage::putFileAs( + 'company_profile',/*folder name*/ $file, $filename. '.' .$ext + ); + } + + //updating registration certificate + if($request->hasFile('reg_cert')) //Registration Certificate upload + { + $reg_cert = $request->file('reg_cert'); + $filename = $reg_cert->getClientOriginalName(); + //$destinationPath = config('app.fileDestinationPath').'/'.$filename; + + $file = $request->file('reg_cert'); + $ext = $file->getClientOriginalExtension(); + + Storage::putFileAs( + 'reg_cert',/*folder name*/ $file, $filename. '.' .$ext + ); } $company->company_name=$request->input('company_name'); diff --git a/config/app.php b/config/app.php index f4eaea2..849a78f 100644 --- a/config/app.php +++ b/config/app.php @@ -1,7 +1,7 @@ 'uploads', /* |-------------------------------------------------------------------------- | Application Name diff --git a/database/migrations/2018_04_24_034401_create_companies_table.php b/database/migrations/2018_04_24_034401_create_companies_table.php index a50bae1..2489520 100644 --- a/database/migrations/2018_04_24_034401_create_companies_table.php +++ b/database/migrations/2018_04_24_034401_create_companies_table.php @@ -16,6 +16,7 @@ class CreateCompaniesTable extends Migration Schema::create('companies', function (Blueprint $table) { $table->increments('id'); $table->string('company_profile');//->default('default.jpg'); //need to check about storage type + $table->string('reg_cert'); $table->string('company-name'); $table->string('registration-no'); $table->string('tax-no'); diff --git a/public/company_profile b/public/company_profile new file mode 100644 index 0000000000000000000000000000000000000000..470ac4c96348212d40b3bd753fcd50a82922fb3f GIT binary patch literal 26593 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 U=}GHO#E+()XvfP*iVz?F+19hpwg3PC literal 0 HcmV?d00001 diff --git a/public/uploads/company_profile/hello.jpg b/public/uploads/company_profile/hello.jpg index a778bbfc4ce20ecf6162beb085394a4f7a7e2eac..470ac4c96348212d40b3bd753fcd50a82922fb3f 100644 GIT binary patch delta 26123 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 JiVz?F0og?9XB+?k literal 21910 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 PQQ6HQ8uz#8^E>_vfuJiZ diff --git a/public/uploads/reg_cert/reg_cert.jpg b/public/uploads/reg_cert/reg_cert.jpg new file mode 100644 index 0000000000000000000000000000000000000000..470ac4c96348212d40b3bd753fcd50a82922fb3f GIT binary patch literal 26593 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 U=}GHO#E+()XvfP*iVz?F+19hpwg3PC literal 0 HcmV?d00001 diff --git a/routes/api.php b/routes/api.php index 2f0c3a6..890896e 100644 --- a/routes/api.php +++ b/routes/api.php @@ -27,8 +27,8 @@ Route::group(['middleware' => ['jwt.auth']], function() { return response()->json(['foo'=>'bar']); }); }); -Route::post('/company', 'CompanyController@store'); -Route::put('/company/{company}', 'CompanyController@update'); +Route::post('/company', 'CompanyController@store'); //store company information +Route::put('/company/{company}', 'CompanyController@update'); //update company information //Route::post('/company', 'CompanyController@uploadImage'); diff --git a/storage/app/public/.gitignore b/storage/app/public/.gitignore deleted file mode 100644 index d6b7ef3..0000000 --- a/storage/app/public/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore From a1ebdb97676a25d6419fe832489572a07f3b3235 Mon Sep 17 00:00:00 2001 From: Aqeeb Imtiaz Harun Date: Tue, 15 May 2018 10:36:41 +0800 Subject: [PATCH 06/13] added the upload functions for both company image and registration certificate, stored under /storage/app directory --- app/Http/Controllers/CompanyController.php | 248 ++++++------------ ...05_08_081508_add_nullable_to_companies.php | 45 ++++ public/uploads/company_profile/hello.jpg | Bin 26593 -> 0 bytes public/uploads/reg_cert/reg_cert.jpg | Bin 26593 -> 0 bytes routes/api.php | 3 +- 5 files changed, 129 insertions(+), 167 deletions(-) create mode 100644 database/migrations/2018_05_08_081508_add_nullable_to_companies.php delete mode 100644 public/uploads/company_profile/hello.jpg delete mode 100644 public/uploads/reg_cert/reg_cert.jpg diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index c4297d2..0d90711 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -6,134 +6,24 @@ use Illuminate\Http\Request; use App\Company; use Image; use Illuminate\Support\Facades\Storage; +use Validator; class CompanyController extends Controller { - /** - * Display a listing of the resource. - * - * @return \Illuminate\Http\Response - */ public function index() { // return view ('home'); } - /** - * Show the form for creating a new resource. - * - * @return \Illuminate\Http\Response - */ - public function create() - { - // - } - - /** - * Store a newly created resource in storage. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response - */ public function store(Request $request) { - // - //$company = new Company; - // if($request->hasFile('avatar')) - // { - // $avatar = $request->file('avatar'); - // $filename = time() . '.' . $avatar->getClientOriginalExtension(); - // Image::make($avatar)->resize(300,300)->save(public_path('/uploads/company_profile/'.$filename)); - // } - // else - // { - // return response()->json(['message'=>'Document not found']); - // } $input = $request->all(); - //validating uploaded files - // $this->validate(request(),[ - // 'company_profile' => 'required|image|mimes:jpg,jpeg,bmp,png', - // 'reg_cerf' => 'required|mimes:jpg,jpeg,bmp,png,gif,svg,pdf' - // ]); - - if($file = $request->file('company_profile')) //company profile picture - { - $company_profile = $request->file('company_profile'); - $filename = $company_profile->getClientOriginalName(); - //$destinationPath = config('app.fileDestinationPath').'/'.$filename; - - $file = $request->file('company_profile'); - $ext = $file->getClientOriginalExtension(); - - Storage::putFileAs( - 'company_profile',/*folder name*/ $file, $filename. '.' .$ext - ); - - // $name = $file->getClientOriginalName(); - // $img_file = $request->file('company_profile'); - // Image::make($img_file)->resize(300,300)->save(public_path('\company_profile')); - // //return $img_file; - // // $file->move('uploads/company_profile/', $img_file); - - // $input['company_profile'] = $name; - } - - if($request->hasFile('reg_cert')) //Registration Certificate upload - { - $reg_cert = $request->file('reg_cert'); - $filename = $reg_cert->getClientOriginalName(); - //$destinationPath = config('app.fileDestinationPath').'/'.$filename; - - $file = $request->file('reg_cert'); - $ext = $file->getClientOriginalExtension(); - - Storage::putFileAs( - 'reg_cert',/*folder name*/ $file, $filename. '.' .$ext - ); - - // $uploaded = Storage::put($destinationPath, file_get_contents($reg_cert->getRealPath())); - // $name = $file->getClientOriginalName(); - // $img_file = $request->file('reg_cert'); - // Image::make($img_file)->save(public_path('uploads\reg_cert')); - - // $input['company_profile'] = $name; - // $request->file('req_cert'); - // //$request->image->store('\uploads\reg_cert'); - // Storage::putFile('uploads\reg_cert', $request->file('reg_cert')); - } - // else{ - // return "failed"; - // } Company::create($input); - //Company::create(request()->all()); - //dd(request()->all()); return redirect('/'); } - /** - * Display the specified resource. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function show($id) - { - // - } - - /** - * Show the form for editing the specified resource. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function edit($id) - { - // - } - /** * Update the specified resource in storage. * @@ -146,37 +36,8 @@ class CompanyController extends Controller $company = Company::find($id); if (!$company) { - return response()->json(['message'=>'Document not found'],200); + return response()->json(['message'=>'company not found'],200); } - //updating company profile picture - if($file = $request->file('company_profile')) //company profile picture - { - $company_profile = $request->file('company_profile'); - $filename = $company_profile->getClientOriginalName(); - //$destinationPath = config('app.fileDestinationPath').'/'.$filename; - - $file = $request->file('company_profile'); - $ext = $file->getClientOriginalExtension(); - - Storage::putFileAs( - 'company_profile',/*folder name*/ $file, $filename. '.' .$ext - ); - } - - //updating registration certificate - if($request->hasFile('reg_cert')) //Registration Certificate upload - { - $reg_cert = $request->file('reg_cert'); - $filename = $reg_cert->getClientOriginalName(); - //$destinationPath = config('app.fileDestinationPath').'/'.$filename; - - $file = $request->file('reg_cert'); - $ext = $file->getClientOriginalExtension(); - - Storage::putFileAs( - 'reg_cert',/*folder name*/ $file, $filename. '.' .$ext - ); - } $company->company_name=$request->input('company_name'); $company->registration_no=$request->input('registration_no'); @@ -189,34 +50,89 @@ class CompanyController extends Controller $company->state=$request->input('state'); $company->country=$request->input('country'); $company->contact_person=$request->input('contact_person'); + $company->save(); - return response()->json(['warehouse'=>$company],200); - // $product = Company::findOrFail($productId); - // $product->update($request->all()); - // $product->company_name = 'imagepath'; - // $product->save(); - - //return response()->json($product, 200); + return response()->json(['company'=>$company],200); } - /** - * Remove the specified resource from storage. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function destroy($id) + public function companyProfile(Request $request, $id) { - // - } + $company = Company::find($id); + if (!$company) + { + return response()->json(['message'=>'Document not found'],200); + } - public function uploadImage($request) + $validator = Validator::make($request->all(), [ + 'company_profile' => 'image|mimes:jpg,jpeg,bmp,png' + ]); + + if($validator->fails()) + { + return "failed"; + } + + if($file = $request->file('company_profile')) //company profile picture + { + $company_profile = $request->file('company_profile'); + $filename = $company_profile->getClientOriginalName(); + //$filename = $company_profile->uniqid('img_'); + $unique_name = 'comp_prof_' . md5($filename); + //$destinationPath = config('app.fileDestinationPath').'/'.$filename; + + $file = $request->file('company_profile'); + $ext = $file->getClientOriginalExtension(); + $input['company_profile'] = $filename; + Storage::putFileAs( + 'company_profile',/*folder name*/ $file, $unique_name. '.' .$ext + ); + $company->company_profile = $unique_name. '.' .$ext; + // $name = $file->getClientOriginalName(); + // $img_file = $request->file('company_profile'); + // Image::make($img_file)->resize(300,300)->save(public_path('\company_profile')); + // //return $img_file; + // // $file->move('uploads/company_profile/', $img_file); + + // $input['company_profile'] = $name; + } //end if + $company->save(); + return response()->json(['company'=>$company],200); + }//end of companyProfile() + + public function regCert(Request $request, $id) { - // if($request->hasFile('avatar')) - // { - // $avatar = $request->file('avatar'); - // $filename = time() . '.' . $avatar->getClientOriginalExtension(); - // Image::make($avatar)->resize(300,300)->save(public_path('/uploads/company_profile/'.$filename)); - // } - } -} \ No newline at end of file + $company = Company::find($id); //find the company first + if (!$company) + { + return response()->json(['message'=>'Document not found'],200); + } + + //validating file types + $validator = Validator::make($request->all(), [ + 'reg_cert' => 'mimes:jpg,jpeg,bmp,png,gif,svg,pdf' + ]); + + if($validator->fails()){ + return "failed"; + } + + if($request->hasFile('reg_cert')) //Registration Certificate upload + { + $reg_cert = $request->file('reg_cert'); + $filename = $reg_cert->getClientOriginalName(); + $unique_name = 'reg_cert_' . md5($filename); + //$destinationPath = config('app.fileDestinationPath').'/'.$filename; + + $file = $request->file('reg_cert'); + $ext = $file->getClientOriginalExtension(); + $input['reg_cert'] = $filename; + Storage::putFileAs( + 'reg_cert',/*folder name*/ $file, $unique_name. '.' .$ext + ); + $company->reg_cert = $unique_name. '.' .$ext; + }//end if + $company->save(); + return response()->json(['company'=>$company],200); + }//end regCert() + +}//end of class \ No newline at end of file diff --git a/database/migrations/2018_05_08_081508_add_nullable_to_companies.php b/database/migrations/2018_05_08_081508_add_nullable_to_companies.php new file mode 100644 index 0000000..28ac581 --- /dev/null +++ b/database/migrations/2018_05_08_081508_add_nullable_to_companies.php @@ -0,0 +1,45 @@ +string('company_profile')->nullable()->change(); //need to check about storage type + $table->string('reg_cert')->nullable()->change(); + $table->string('company_name')->nullable()->change(); + $table->string('registration_no')->nullable()->change(); + $table->string('tax_no')->nullable()->change(); + $table->integer('tel_no')->nullable()->change(); + $table->integer('fax')->nullable()->change(); + $table->string('address')->nullable()->change(); + $table->string('city')->nullable()->change(); + $table->string('postcode')->nullable()->change(); + $table->string('state')->nullable()->change(); + $table->string('country')->nullable()->change(); + $table->string('contact_person')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('companies', function (Blueprint $table) { + // + }); + } +} diff --git a/public/uploads/company_profile/hello.jpg b/public/uploads/company_profile/hello.jpg deleted file mode 100644 index 470ac4c96348212d40b3bd753fcd50a82922fb3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26593 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 U=}GHO#E+()XvfP*iVz?F+19hpwg3PC diff --git a/public/uploads/reg_cert/reg_cert.jpg b/public/uploads/reg_cert/reg_cert.jpg deleted file mode 100644 index 470ac4c96348212d40b3bd753fcd50a82922fb3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26593 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 U=}GHO#E+()XvfP*iVz?F+19hpwg3PC diff --git a/routes/api.php b/routes/api.php index 890896e..b8f714c 100644 --- a/routes/api.php +++ b/routes/api.php @@ -30,7 +30,8 @@ Route::group(['middleware' => ['jwt.auth']], function() { Route::post('/company', 'CompanyController@store'); //store company information Route::put('/company/{company}', 'CompanyController@update'); //update company information -//Route::post('/company', 'CompanyController@uploadImage'); +Route::post('/company/company_profile/{companyID}', 'CompanyController@companyProfile');//upload company profile picture +Route::post('/company/reg_cert/{companyID}', 'CompanyController@regCert'); //upload registration certificaate // Route::put('company/{company}', function(Request $request, $productId) { // $product = Company::findOrFail($productId); From 5a7066969aa5ff59f58db3bf2cb5c6e818ac0ca0 Mon Sep 17 00:00:00 2001 From: Aqeeb Imtiaz Harun Date: Tue, 15 May 2018 11:17:14 +0800 Subject: [PATCH 07/13] Test Company Information Page --- tests/Unit/CompanyTest.php | 56 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 tests/Unit/CompanyTest.php diff --git a/tests/Unit/CompanyTest.php b/tests/Unit/CompanyTest.php new file mode 100644 index 0000000..9e3f495 --- /dev/null +++ b/tests/Unit/CompanyTest.php @@ -0,0 +1,56 @@ +assertTrue(true); + } + + public function testPOST() + { + $response = $this->json('POST', '/api/company', [ + 'company_name'=>'testing', + 'registration_no'=>'testing', + 'tax_no'=>'testing', + 'tel_no'=>'testing', + 'fax'=>'testing', + 'address'=>'testing', + 'city'=>'testing', + 'postcode'=>'testing', + 'state'=>'testing', + 'country'=>'testing', + 'contact_person'=>'testing', + ]); + $response->assertStatus(201); + } + + public function testPUT() + { + $response = $this->json('PUT', '/api/company/1', [ + 'company_name'=>'testing', + 'registration_no'=>'testing', + 'tax_no'=>'testing', + 'tel_no'=>'testing', + 'fax'=>'testing', + 'address'=>'testing', + 'city'=>'testing', + 'postcode'=>'testing', + 'state'=>'testing', + 'country'=>'testing', + 'contact_person'=>'testing', + ]); + $response->assertStatus(200); + } +} From 3d1509d7842933bec3793be73d1b633bab0ed4e4 Mon Sep 17 00:00:00 2001 From: Aqeeb Imtiaz Harun Date: Tue, 15 May 2018 15:23:18 +0800 Subject: [PATCH 08/13] Upload function testing --- tests/Unit/CompanyTest.php | 73 ++++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 30 deletions(-) diff --git a/tests/Unit/CompanyTest.php b/tests/Unit/CompanyTest.php index 9e3f495..c6b980f 100644 --- a/tests/Unit/CompanyTest.php +++ b/tests/Unit/CompanyTest.php @@ -5,6 +5,8 @@ namespace Tests\Unit; use Tests\TestCase; use Illuminate\Foundation\Testing\WithFaker; use Illuminate\Foundation\Testing\RefreshDatabase; +use Illuminate\Http\UploadedFile; +use Illuminate\Support\Facades\Storage; class CompanyTest extends TestCase { @@ -18,39 +20,50 @@ class CompanyTest extends TestCase $this->assertTrue(true); } - public function testPOST() - { - $response = $this->json('POST', '/api/company', [ - 'company_name'=>'testing', - 'registration_no'=>'testing', - 'tax_no'=>'testing', - 'tel_no'=>'testing', - 'fax'=>'testing', - 'address'=>'testing', - 'city'=>'testing', - 'postcode'=>'testing', - 'state'=>'testing', - 'country'=>'testing', - 'contact_person'=>'testing', - ]); - $response->assertStatus(201); - } + // public function testPOST() + // { + // $response = $this->json('POST', '/api/company', [ + // 'company_name'=>'testing', + // 'registration_no'=>'testing', + // 'tax_no'=>'testing', + // 'tel_no'=>'12345', + // 'fax'=>'12345', + // 'address'=>'testing', + // 'city'=>'testing', + // 'postcode'=>'testing', + // 'state'=>'testing', + // 'country'=>'testing', + // 'contact_person'=>'testing', + // ]); + // var_dump($response); + // $response->assertStatus(302); + // } - public function testPUT() + // public function testPUT() + // { + // $response = $this->json('PUT', '/api/company/4', [ + // 'company_name'=>'changed testing', + // 'registration_no'=>'testing', + // 'tax_no'=>'testing', + // 'tel_no'=>'12345', + // 'fax'=>'12345', + // 'address'=>'testing', + // 'city'=>'testing', + // 'postcode'=>'testing', + // 'state'=>'testing', + // 'country'=>'testing', + // 'contact_person'=>'testing', + // ]); + // $response->assertStatus(200); + // } + public function testcompanyProfile() { - $response = $this->json('PUT', '/api/company/1', [ - 'company_name'=>'testing', - 'registration_no'=>'testing', - 'tax_no'=>'testing', - 'tel_no'=>'testing', - 'fax'=>'testing', - 'address'=>'testing', - 'city'=>'testing', - 'postcode'=>'testing', - 'state'=>'testing', - 'country'=>'testing', - 'contact_person'=>'testing', + Storage::fake('company_profile'); + + $response = $this->json('POST', '/company/company_profile/4', [ + 'company_profile' => UploadedFile::fake()->image('comp.jpg') ]); + var_dump($response); $response->assertStatus(200); } } From f72645e2c2ce19cefd94a5aadbe7d3c4baa029bb Mon Sep 17 00:00:00 2001 From: Aqeeb Imtiaz Harun Date: Wed, 16 May 2018 09:57:03 +0800 Subject: [PATCH 09/13] Company Profile has been completed and tested --- app/Http/Controllers/CompanyController.php | 51 ++++++------- tests/Unit/CompanyTest.php | 86 ++++++++++++---------- 2 files changed, 70 insertions(+), 67 deletions(-) diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index 0d90711..e5c45b1 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -4,7 +4,7 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Company; -use Image; +//use Image; //only used in companyProfile(), uncomment if using that portion of the code use Illuminate\Support\Facades\Storage; use Validator; @@ -24,13 +24,6 @@ class CompanyController extends Controller return redirect('/'); } - /** - * Update the specified resource in storage. - * - * @param \Illuminate\Http\Request $request - * @param int $id - * @return \Illuminate\Http\Response - */ public function update(Request $request, $id) { $company = Company::find($id); @@ -57,16 +50,15 @@ class CompanyController extends Controller public function companyProfile(Request $request, $id) { - $company = Company::find($id); + $company = Company::find($id);//find the company first if (!$company) { return response()->json(['message'=>'Document not found'],200); } - + //validaating file types $validator = Validator::make($request->all(), [ 'company_profile' => 'image|mimes:jpg,jpeg,bmp,png' ]); - if($validator->fails()) { return "failed"; @@ -75,10 +67,8 @@ class CompanyController extends Controller if($file = $request->file('company_profile')) //company profile picture { $company_profile = $request->file('company_profile'); - $filename = $company_profile->getClientOriginalName(); - //$filename = $company_profile->uniqid('img_'); - $unique_name = 'comp_prof_' . md5($filename); - //$destinationPath = config('app.fileDestinationPath').'/'.$filename; + $filename = $company_profile->getClientOriginalName(); //get the original file name + $unique_name = 'comp_prof_' . md5($filename. time()); //generating a random file name $file = $request->file('company_profile'); $ext = $file->getClientOriginalExtension(); @@ -86,14 +76,17 @@ class CompanyController extends Controller Storage::putFileAs( 'company_profile',/*folder name*/ $file, $unique_name. '.' .$ext ); - $company->company_profile = $unique_name. '.' .$ext; - // $name = $file->getClientOriginalName(); - // $img_file = $request->file('company_profile'); - // Image::make($img_file)->resize(300,300)->save(public_path('\company_profile')); - // //return $img_file; - // // $file->move('uploads/company_profile/', $img_file); + $company->company_profile = $unique_name. '.' .$ext; //update database + // only use the following section of the code if you're omiting the upper portion, also uncomment the Image Library on line 7 & install Intervention Image package + /* + $name = $file->getClientOriginalName(); + $img_file = $request->file('company_profile'); + Image::make($img_file)->resize(300,300)->save(public_path('\company_profile')); + //return $img_file; + // $file->move('uploads/company_profile/', $img_file); - // $input['company_profile'] = $name; + $input['company_profile'] = $name; + */ } //end if $company->save(); return response()->json(['company'=>$company],200); @@ -111,17 +104,15 @@ class CompanyController extends Controller $validator = Validator::make($request->all(), [ 'reg_cert' => 'mimes:jpg,jpeg,bmp,png,gif,svg,pdf' ]); - - if($validator->fails()){ - return "failed"; - } + if($validator->fails()){ + return "failed"; + } if($request->hasFile('reg_cert')) //Registration Certificate upload { $reg_cert = $request->file('reg_cert'); - $filename = $reg_cert->getClientOriginalName(); - $unique_name = 'reg_cert_' . md5($filename); - //$destinationPath = config('app.fileDestinationPath').'/'.$filename; + $filename = $reg_cert->getClientOriginalName(); //original filename + $unique_name = 'reg_cert_' . md5($filename. time()); //generating a random file name $file = $request->file('reg_cert'); $ext = $file->getClientOriginalExtension(); @@ -129,7 +120,7 @@ class CompanyController extends Controller Storage::putFileAs( 'reg_cert',/*folder name*/ $file, $unique_name. '.' .$ext ); - $company->reg_cert = $unique_name. '.' .$ext; + $company->reg_cert = $unique_name. '.' .$ext; //this updates database }//end if $company->save(); return response()->json(['company'=>$company],200); diff --git a/tests/Unit/CompanyTest.php b/tests/Unit/CompanyTest.php index c6b980f..0e8fb7e 100644 --- a/tests/Unit/CompanyTest.php +++ b/tests/Unit/CompanyTest.php @@ -20,50 +20,62 @@ class CompanyTest extends TestCase $this->assertTrue(true); } - // public function testPOST() - // { - // $response = $this->json('POST', '/api/company', [ - // 'company_name'=>'testing', - // 'registration_no'=>'testing', - // 'tax_no'=>'testing', - // 'tel_no'=>'12345', - // 'fax'=>'12345', - // 'address'=>'testing', - // 'city'=>'testing', - // 'postcode'=>'testing', - // 'state'=>'testing', - // 'country'=>'testing', - // 'contact_person'=>'testing', - // ]); - // var_dump($response); - // $response->assertStatus(302); - // } + public function testPOST() + { + $response = $this->json('POST', '/api/company', [ + 'company_name'=>'testing', + 'registration_no'=>'testing', + 'tax_no'=>'testing', + 'tel_no'=>'12345', + 'fax'=>'12345', + 'address'=>'testing', + 'city'=>'testing', + 'postcode'=>'testing', + 'state'=>'testing', + 'country'=>'testing', + 'contact_person'=>'testing', + ]); + var_dump($response); + $response->assertStatus(302); //here 302 as the page redirects + } + + public function testPUT() + { + $response = $this->json('PUT', '/api/company/9', [ + 'company_name'=>'changed testing', + 'registration_no'=>'testing', + 'tax_no'=>'testing', + 'tel_no'=>'12345', + 'fax'=>'12345', + 'address'=>'testing', + 'city'=>'testing', + 'postcode'=>'testing', + 'state'=>'testing', + 'country'=>'testing', + 'contact_person'=>'testing', + ]); + $response->assertStatus(200); + } - // public function testPUT() - // { - // $response = $this->json('PUT', '/api/company/4', [ - // 'company_name'=>'changed testing', - // 'registration_no'=>'testing', - // 'tax_no'=>'testing', - // 'tel_no'=>'12345', - // 'fax'=>'12345', - // 'address'=>'testing', - // 'city'=>'testing', - // 'postcode'=>'testing', - // 'state'=>'testing', - // 'country'=>'testing', - // 'contact_person'=>'testing', - // ]); - // $response->assertStatus(200); - // } public function testcompanyProfile() { Storage::fake('company_profile'); - $response = $this->json('POST', '/company/company_profile/4', [ + $response = $this->json('POST', '/api/company/company_profile/9', [ 'company_profile' => UploadedFile::fake()->image('comp.jpg') ]); - var_dump($response); + dd($response->getContent()); + $response->assertStatus(200); + } + + public function testregCert() + { + Storage::fake('reg_cert'); + + $response = $this->json('POST', '/api/company/reg_cert/9', [ + 'reg_cert' => UploadedFile::fake()->image('reg.pdf') + ]); + dd($response->getContent()); $response->assertStatus(200); } } From 1519a203a93295d4f3b6525d340cb9cfaade0708 Mon Sep 17 00:00:00 2001 From: jack Date: Wed, 23 May 2018 12:17:12 +0800 Subject: [PATCH 10/13] removed company routes from web --- routes/web.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/routes/web.php b/routes/web.php index 56f82e3..e3497b4 100644 --- a/routes/web.php +++ b/routes/web.php @@ -16,7 +16,5 @@ Route::get('/', function () { }); //Route::post('login', 'AuthController@login'); - Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.request'); Route::post('password/reset', 'Auth\ResetPasswordController@postReset')->name('password.reset'); -Route::get('/company', 'CompanyController@index'); From 39961571879df5b82ce88949fbb1855c8db58be1 Mon Sep 17 00:00:00 2001 From: jack Date: Wed, 23 May 2018 12:18:19 +0800 Subject: [PATCH 11/13] clean up routes --- routes/api.php | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/routes/api.php b/routes/api.php index f657d7f..bffebdb 100644 --- a/routes/api.php +++ b/routes/api.php @@ -13,16 +13,10 @@ use App\Company; | */ -//Route::middleware('auth:api')->get('/user', function (Request $request) { -// return $request->user(); -//}); - -//Route::post('register', 'AuthController@register'); +/* Authentication */ Route::post('login', 'AuthController@login'); Route::post('password/recover', 'AuthController@recover'); Route::post('password/reset', 'AuthController@reset'); - - Route::post('send-verification', 'AuthController@sendVerification'); Route::post('verify-phone', 'AuthController@verifyPhone'); @@ -33,20 +27,9 @@ Route::group(['middleware' => ['jwt.auth']], function() { return response()->json(['user'=> $request->user()]); }); }); + +/* Company */ Route::post('/company', 'CompanyController@store'); //store company information Route::put('/company/{company}', 'CompanyController@update'); //update company information - Route::post('/company/company_profile/{companyID}', 'CompanyController@companyProfile');//upload company profile picture -Route::post('/company/reg_cert/{companyID}', 'CompanyController@regCert'); //upload registration certificaate - -// Route::put('company/{company}', function(Request $request, $productId) { -// $product = Company::findOrFail($productId); -// $product->update($request->all()); -// return $product; -// }); - -// Route::put('company/{company}', function(Request $request, $companyId) { -// $company = Product::findOrFail($companyId); -// $company->update($request->all()); -// return $company; -// }); \ No newline at end of file +Route::post('/company/reg_cert/{companyID}', 'CompanyController@regCert'); //upload registration certificaate \ No newline at end of file From 2bf4eb2b0530d983df5a0377e577d521d89cff13 Mon Sep 17 00:00:00 2001 From: jack Date: Wed, 23 May 2018 12:20:44 +0800 Subject: [PATCH 12/13] remove companycontroller index function --- app/Http/Controllers/CompanyController.php | 7 ------- 1 file changed, 7 deletions(-) diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index e5c45b1..6bc912c 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -10,16 +10,9 @@ use Validator; class CompanyController extends Controller { - public function index() - { - // - return view ('home'); - } - public function store(Request $request) { $input = $request->all(); - Company::create($input); return redirect('/'); } From ba827bf27d847c2e91f523ccfbcda693f38a45b6 Mon Sep 17 00:00:00 2001 From: Aqeeb Imtiaz Harun Date: Thu, 24 May 2018 12:16:37 +0800 Subject: [PATCH 13/13] fixed the issues that were pointed out except the pdf test --- app/Http/Controllers/CompanyController.php | 22 ++++++---------------- config/app.php | 6 ++---- tests/Unit/CompanyTest.php | 11 +++++------ 3 files changed, 13 insertions(+), 26 deletions(-) diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index 6bc912c..aba4fdc 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -4,7 +4,6 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Company; -//use Image; //only used in companyProfile(), uncomment if using that portion of the code use Illuminate\Support\Facades\Storage; use Validator; @@ -14,7 +13,8 @@ class CompanyController extends Controller { $input = $request->all(); Company::create($input); - return redirect('/'); + return response()->json(['input'=>$input],201); + //return redirect('/'); } public function update(Request $request, $id) @@ -46,7 +46,7 @@ class CompanyController extends Controller $company = Company::find($id);//find the company first if (!$company) { - return response()->json(['message'=>'Document not found'],200); + return response()->json(['message'=>'company for company_prof not found'],200); } //validaating file types $validator = Validator::make($request->all(), [ @@ -54,7 +54,7 @@ class CompanyController extends Controller ]); if($validator->fails()) { - return "failed"; + return response()->json(['message'=>'Incorrect format'],200); } if($file = $request->file('company_profile')) //company profile picture @@ -70,16 +70,6 @@ class CompanyController extends Controller 'company_profile',/*folder name*/ $file, $unique_name. '.' .$ext ); $company->company_profile = $unique_name. '.' .$ext; //update database - // only use the following section of the code if you're omiting the upper portion, also uncomment the Image Library on line 7 & install Intervention Image package - /* - $name = $file->getClientOriginalName(); - $img_file = $request->file('company_profile'); - Image::make($img_file)->resize(300,300)->save(public_path('\company_profile')); - //return $img_file; - // $file->move('uploads/company_profile/', $img_file); - - $input['company_profile'] = $name; - */ } //end if $company->save(); return response()->json(['company'=>$company],200); @@ -90,7 +80,7 @@ class CompanyController extends Controller $company = Company::find($id); //find the company first if (!$company) { - return response()->json(['message'=>'Document not found'],200); + return response()->json(['message'=>'company for reg_cert not found'],200); } //validating file types @@ -98,7 +88,7 @@ class CompanyController extends Controller 'reg_cert' => 'mimes:jpg,jpeg,bmp,png,gif,svg,pdf' ]); if($validator->fails()){ - return "failed"; + return response()->json(['message'=>'Incorrect format'],200); } if($request->hasFile('reg_cert')) //Registration Certificate upload diff --git a/config/app.php b/config/app.php index e5d8c3d..9a8e5b8 100644 --- a/config/app.php +++ b/config/app.php @@ -160,8 +160,7 @@ return [ App\Providers\AuthServiceProvider::class, // App\Providers\BroadcastServiceProvider::class, App\Providers\EventServiceProvider::class, - App\Providers\RouteServiceProvider::class, - Intervention\Image\ImageServiceProvider::class + App\Providers\RouteServiceProvider::class ], /* @@ -214,8 +213,7 @@ return [ 'JWTFactory' => Tymon\JWTAuth\Facades\JWTFactory::class, 'Twilio' => Aloha\Twilio\Support\Laravel\Facade::class, 'Laratrust' => Laratrust\LaratrustFacade::class, - 'auth.password.broker' => Illuminate\Auth\Passwords\TokenRepositoryInterface::class, - 'Image' => Intervention\Image\Facades\Image::class + 'auth.password.broker' => Illuminate\Auth\Passwords\TokenRepositoryInterface::class ], ]; diff --git a/tests/Unit/CompanyTest.php b/tests/Unit/CompanyTest.php index 0e8fb7e..89f4249 100644 --- a/tests/Unit/CompanyTest.php +++ b/tests/Unit/CompanyTest.php @@ -35,13 +35,12 @@ class CompanyTest extends TestCase 'country'=>'testing', 'contact_person'=>'testing', ]); - var_dump($response); - $response->assertStatus(302); //here 302 as the page redirects + $response->assertStatus(201); } public function testPUT() { - $response = $this->json('PUT', '/api/company/9', [ + $response = $this->json('PUT', '/api/company/2', [ 'company_name'=>'changed testing', 'registration_no'=>'testing', 'tax_no'=>'testing', @@ -61,7 +60,7 @@ class CompanyTest extends TestCase { Storage::fake('company_profile'); - $response = $this->json('POST', '/api/company/company_profile/9', [ + $response = $this->json('POST', '/api/company/company_profile/2', [ 'company_profile' => UploadedFile::fake()->image('comp.jpg') ]); dd($response->getContent()); @@ -72,8 +71,8 @@ class CompanyTest extends TestCase { Storage::fake('reg_cert'); - $response = $this->json('POST', '/api/company/reg_cert/9', [ - 'reg_cert' => UploadedFile::fake()->image('reg.pdf') + $response = $this->json('POST', '/api/company/reg_cert/2', [ + 'reg_cert' => UploadedFile::fake()->create('document.pdf')//, $sizeInKilobytes) ]); dd($response->getContent()); $response->assertStatus(200);