Skip to content

Commit 269d80a

Browse files
committed
Laravel rest api with passport
0 parents  commit 269d80a

File tree

8,838 files changed

+938565
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

8,838 files changed

+938565
-0
lines changed

README.md

Lines changed: 735 additions & 0 deletions
Large diffs are not rendered by default.

READ_ME.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<p align="center"><img src="https://res.cloudinary.com/dtfbvvkyp/image/upload/v1566331377/laravel-logolockup-cmyk-red.svg" width="400"></p>
2+
3+
<p align="center">
4+
<a href="https://travis-ci.org/laravel/framework"><img src="https://travis-ci.org/laravel/framework.svg" alt="Build Status"></a>
5+
<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/d/total.svg" alt="Total Downloads"></a>
6+
<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/v/stable.svg" alt="Latest Stable Version"></a>
7+
<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/license.svg" alt="License"></a>
8+
</p>
9+
10+
## About Laravel
11+
12+
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
13+
14+
- [Simple, fast routing engine](https://laravel.com/docs/routing).
15+
- [Powerful dependency injection container](https://laravel.com/docs/container).
16+
- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.
17+
- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent).
18+
- Database agnostic [schema migrations](https://laravel.com/docs/migrations).
19+
- [Robust background job processing](https://laravel.com/docs/queues).
20+
- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).
21+
22+
Laravel is accessible, powerful, and provides tools required for large, robust applications.
23+
24+
## Learning Laravel
25+
26+
Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
27+
28+
If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains over 1500 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
29+
30+
## Laravel Sponsors
31+
32+
We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](https://patreon.com/taylorotwell).
33+
34+
- **[Vehikl](https://vehikl.com/)**
35+
- **[Tighten Co.](https://tighten.co)**
36+
- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
37+
- **[64 Robots](https://64robots.com)**
38+
- **[Cubet Techno Labs](https://cubettech.com)**
39+
- **[Cyber-Duck](https://cyber-duck.co.uk)**
40+
- **[British Software Development](https://www.britishsoftware.co)**
41+
- **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)**
42+
- **[DevSquad](https://devsquad.com)**
43+
- [UserInsights](https://userinsights.com)
44+
- [Fragrantica](https://www.fragrantica.com)
45+
- [SOFTonSOFA](https://softonsofa.com/)
46+
- [User10](https://user10.com)
47+
- [Soumettre.fr](https://soumettre.fr/)
48+
- [CodeBrisk](https://codebrisk.com)
49+
- [1Forge](https://1forge.com)
50+
- [TECPRESSO](https://tecpresso.co.jp/)
51+
- [Runtime Converter](http://runtimeconverter.com/)
52+
- [WebL'Agence](https://weblagence.com/)
53+
- [Invoice Ninja](https://www.invoiceninja.com)
54+
- [iMi digital](https://www.imi-digital.de/)
55+
- [Earthlink](https://www.earthlink.ro/)
56+
- [Steadfast Collective](https://steadfastcollective.com/)
57+
- [We Are The Robots Inc.](https://watr.mx/)
58+
- [Understand.io](https://www.understand.io/)
59+
- [Abdel Elrafa](https://abdelelrafa.com)
60+
- [Hyper Host](https://hyper.host)
61+
- [Appoly](https://www.appoly.co.uk)
62+
- [OP.GG](https://op.gg)
63+
64+
## Contributing
65+
66+
Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).
67+
68+
## Code of Conduct
69+
70+
In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).
71+
72+
## Security Vulnerabilities
73+
74+
If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed.
75+
76+
## License
77+
78+
The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).

app/Blog.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
namespace App;
4+
5+
use Illuminate\Database\Eloquent\Model;
6+
7+
class Blog extends Model
8+
{
9+
/**
10+
* The attributes that are mass assignable.
11+
*
12+
* @var array
13+
*/
14+
protected $fillable = [
15+
'name', 'description'
16+
];
17+
}

app/Console/Kernel.php

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
3+
namespace App\Console;
4+
5+
use Illuminate\Console\Scheduling\Schedule;
6+
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
7+
8+
class Kernel extends ConsoleKernel
9+
{
10+
/**
11+
* The Artisan commands provided by your application.
12+
*
13+
* @var array
14+
*/
15+
protected $commands = [
16+
//
17+
];
18+
19+
/**
20+
* Define the application's command schedule.
21+
*
22+
* @param \Illuminate\Console\Scheduling\Schedule $schedule
23+
* @return void
24+
*/
25+
protected function schedule(Schedule $schedule)
26+
{
27+
// $schedule->command('inspire')
28+
// ->hourly();
29+
}
30+
31+
/**
32+
* Register the commands for the application.
33+
*
34+
* @return void
35+
*/
36+
protected function commands()
37+
{
38+
$this->load(__DIR__.'/Commands');
39+
40+
require base_path('routes/console.php');
41+
}
42+
}

app/Exceptions/Handler.php

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<?php
2+
3+
namespace App\Exceptions;
4+
5+
use Exception;
6+
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
7+
8+
class Handler extends ExceptionHandler
9+
{
10+
/**
11+
* A list of the exception types that are not reported.
12+
*
13+
* @var array
14+
*/
15+
protected $dontReport = [
16+
//
17+
];
18+
19+
/**
20+
* A list of the inputs that are never flashed for validation exceptions.
21+
*
22+
* @var array
23+
*/
24+
protected $dontFlash = [
25+
'password',
26+
'password_confirmation',
27+
];
28+
29+
/**
30+
* Report or log an exception.
31+
*
32+
* @param \Exception $exception
33+
* @return void
34+
*
35+
* @throws \Exception
36+
*/
37+
public function report(Exception $exception)
38+
{
39+
parent::report($exception);
40+
}
41+
42+
/**
43+
* Render an exception into an HTTP response.
44+
*
45+
* @param \Illuminate\Http\Request $request
46+
* @param \Exception $exception
47+
* @return \Symfony\Component\HttpFoundation\Response
48+
*
49+
* @throws \Exception
50+
*/
51+
public function render($request, Exception $exception)
52+
{
53+
return parent::render($request, $exception);
54+
}
55+
}
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\API;
4+
5+
use Illuminate\Http\Request;
6+
use Validator;
7+
use App\Blog;
8+
use App\Http\Controllers\Controller as Controller;
9+
10+
class BlogController extends Controller
11+
{
12+
/**
13+
* Display a listing of the resource.
14+
*
15+
* @return \Illuminate\Http\Response
16+
*/
17+
public function index()
18+
{
19+
//Get list of blogs
20+
$blogs = Blog::all();
21+
$message = 'Blogs retrieved successfully.';
22+
$status = true;
23+
24+
//Call function for response data
25+
$response = $this->response($status, $blogs, $message);
26+
return $response;
27+
}
28+
29+
/**
30+
* Store a newly created blog in database.
31+
*
32+
* @param \Illuminate\Http\Request $request
33+
* @return \Illuminate\Http\Response
34+
*/
35+
public function store(Request $request)
36+
{
37+
//Get request data
38+
$input = $request->all();
39+
40+
//Validate requested data
41+
$validator = Validator::make($input, [
42+
'name' => 'required',
43+
'description' => 'required'
44+
]);
45+
if ($validator->fails()) {
46+
return $this->sendError('Validation Error.', $validator->errors());
47+
}
48+
$blog = Blog::create($input);
49+
$message = 'Blog created successfully.';
50+
$status = true;
51+
52+
//Call function for response data
53+
$response = $this->response($status, $blog, $message);
54+
return $response;
55+
}
56+
57+
/**
58+
* Update the specified blog in storage.
59+
*
60+
* @param \Illuminate\Http\Request $request
61+
* @param int $id
62+
* @return \Illuminate\Http\Response
63+
*/
64+
public function update(Request $request, $id)
65+
{
66+
//Get request data
67+
$input = $request->all();
68+
69+
//Validate requested data
70+
$validator = Validator::make($input, [
71+
'name' => 'required',
72+
'description' => 'required'
73+
]);
74+
if ($validator->fails()) {
75+
$message = $validator->errors();
76+
$blog = [];
77+
$status = 'fail';
78+
$response = $this->response($status, $blog, $message);
79+
return $response;
80+
}
81+
82+
//Update blog
83+
$blog = Blog::find($id)->update(['name' => $input['name'], 'description' => $input['description']]);
84+
$message = 'Blog updated successfully.';
85+
$status = true;
86+
87+
//Call function for response data
88+
$response = $this->response($status, $blog, $message);
89+
return $response;
90+
}
91+
92+
/**
93+
* Display the specified blog.
94+
*
95+
* @param int $id
96+
* @return \Illuminate\Http\Response
97+
*/
98+
public function show($id)
99+
{
100+
$blog = Blog::find($id);
101+
102+
//Check if blog found or not.
103+
if (is_null($blog)) {
104+
$message = 'Blog not found.';
105+
$status = false;
106+
$response = $this->response($status, $blog, $message);
107+
return $response;
108+
}
109+
$message = 'Blog retrieved successfully.';
110+
$status = true;
111+
112+
//Call function for response data
113+
$response = $this->response($status, $blog, $message);
114+
return $response;
115+
}
116+
117+
/**
118+
* Remove the specified blog from storage.
119+
*
120+
* @param int $id
121+
* @return \Illuminate\Http\Response
122+
*/
123+
public function destroy($id)
124+
{
125+
//Delete blog
126+
$blog = Blog::findOrFail($id);
127+
$blog->delete();
128+
$message = 'Blog deleted successfully.';
129+
$status = true;
130+
131+
//Call function for response data
132+
$response = $this->response($status, $blog, $message);
133+
return $response;
134+
}
135+
136+
/**
137+
* Response data
138+
*
139+
* @param $status
140+
* @param $blog
141+
* @param $message
142+
* @return \Illuminate\Http\Response
143+
*/
144+
public function response($status, $blog, $message)
145+
{
146+
//Response data structure
147+
$return['success'] = $status;
148+
$return['data'] = $blog;
149+
$return['message'] = $message;
150+
return $return;
151+
}
152+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
3+
4+
namespace App\Http\Controllers\API;
5+
6+
use Illuminate\Http\Request;
7+
use App\Http\Controllers\Controller as Controller;
8+
use App\User;
9+
use Validator;
10+
class RegisterController extends Controller
11+
{
12+
/**
13+
* Register api
14+
*
15+
* @return \Illuminate\Http\Response
16+
*/
17+
public function register(Request $request)
18+
{
19+
//Validate requested data
20+
$validator = Validator::make($request->all(), [
21+
'name' => 'required',
22+
'email' => 'required|email',
23+
'password' => 'required',
24+
'c_password' => 'required|same:password',
25+
]);
26+
27+
28+
if($validator->fails()){
29+
return $this->sendError('Validation Error.', $validator->errors());
30+
}
31+
32+
33+
$input = $request->all();
34+
$input['password'] = bcrypt($input['password']);
35+
$user = User::create($input);
36+
$response['token'] = $user->createToken('MyApp')->accessToken;
37+
$response['name'] = $user->name;
38+
$response['success'] = true;
39+
$response['message'] = "User registered successfully.";
40+
return $response;
41+
}
42+
}

0 commit comments

Comments
 (0)