Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
laravel-adminpanel
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
laravel-adminpanel
Commits
17870f75
Commit
17870f75
authored
Mar 13, 2018
by
Viral Solani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor User API
parent
f277a631
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
93 additions
and
72 deletions
+93
-72
UsersController.php
app/Http/Controllers/Api/V1/UsersController.php
+84
-64
UserRepository.php
app/Repositories/Backend/Access/User/UserRepository.php
+2
-2
composer.lock
composer.lock
+5
-5
api.php
routes/api.php
+2
-1
No files found.
app/Http/Controllers/Api/V1/UsersController.php
View file @
17870f75
...
@@ -2,11 +2,13 @@
...
@@ -2,11 +2,13 @@
namespace
App\Http\Controllers\Api\V1
;
namespace
App\Http\Controllers\Api\V1
;
use
App\Http\Resources\UserResource
;
use
Validator
;
use
Illuminate\Http\Request
;
use
App\Models\Access\User\User
;
use
App\Models\Access\User\User
;
use
App\Http\Resources\UserResource
;
use
App\Events\Backend\Access\User\UserCreated
;
use
App\Events\Backend\Access\User\UserUpdated
;
use
App\Repositories\Backend\Access\User\UserRepository
;
use
App\Repositories\Backend\Access\User\UserRepository
;
use
Illuminate\Http\Request
;
use
Validator
;
class
UsersController
extends
APIController
class
UsersController
extends
APIController
{
{
...
@@ -25,7 +27,9 @@ class UsersController extends APIController
...
@@ -25,7 +27,9 @@ class UsersController extends APIController
/**
/**
* Return the users.
* Return the users.
*
*
* @return \Illuminate\Http\Response
* @param Request $request
*
* @return \Illuminate\Http\JsonResponse
*/
*/
public
function
index
(
Request
$request
)
public
function
index
(
Request
$request
)
{
{
...
@@ -41,89 +45,120 @@ class UsersController extends APIController
...
@@ -41,89 +45,120 @@ class UsersController extends APIController
*
*
* @param User $user
* @param User $user
*
*
* @return \Illuminate\Http\Response
* @return \Illuminate\Http\
Json
Response
*/
*/
public
function
show
(
User
$user
)
public
function
show
(
User
$user
)
{
{
$data
=
new
UserResource
(
$user
);
return
new
UserResource
(
$user
);
$history
[
'history'
]
=
history
()
->
renderEntity
(
'User'
,
$user
->
id
);
$maindata
=
$data
->
toArray
(
$user
);
$maindata
=
array_merge
(
$maindata
,
$history
);
return
$maindata
;
}
}
/**
/**
*
Return the specified resource.
*
Create User
*
*
* @param Request
* @param Request
$request
*
*
* @return \Illuminate\Http\Response
* @return \Illuminate\Http\
Json
Response
*/
*/
public
function
deactivatedUserList
(
Request
$request
)
public
function
store
(
Request
$request
)
{
{
$
limit
=
$request
->
get
(
'paginate'
)
?
$request
->
get
(
'paginate'
)
:
25
;
$
validation
=
$this
->
validateUser
(
$request
)
;
return
UserResource
::
collection
(
if
(
$validation
->
fails
())
{
$this
->
repository
->
getForDataTable
(
0
,
false
)
->
paginate
(
$limit
)
return
$this
->
throwValidation
(
$validation
->
messages
()
->
first
());
);
}
$this
->
repository
->
create
(
$request
);
event
(
new
UserCreated
(
$user
));
return
new
UserResource
(
User
::
orderBy
(
'created_at'
,
'desc'
)
->
first
());
}
}
/**
/**
*
Return the specified resource.
*
Update User
*
*
* @param Request $request
* @param User $user
* @param User $user
*
*
* @return \Illuminate\Http\Response
* @return \Illuminate\Http\JsonResponse
*/
public
function
deleteUserList
(
Request
$request
)
{
$limit
=
$request
->
get
(
'paginate'
)
?
$request
->
get
(
'paginate'
)
:
25
;
return
UserResource
::
collection
(
$this
->
repository
->
getForDataTable
(
0
,
true
)
->
paginate
(
$limit
)
);
}
/**
* Update the specified resource in storage.
*/
*/
public
function
update
(
Request
$request
,
User
$user
)
public
function
update
(
Request
$request
,
User
$user
)
{
{
$validation
=
$this
->
validat
ingRequest
(
$request
,
'edit'
,
$user
->
id
);
$validation
=
$this
->
validat
eUser
(
$request
,
'edit'
,
$user
->
id
);
if
(
$validation
->
fails
())
{
if
(
$validation
->
fails
())
{
return
$this
->
throwValidation
(
$validation
->
messages
()
->
first
());
return
$this
->
throwValidation
(
$validation
->
messages
()
->
first
());
}
}
$this
->
repository
->
update
(
$user
,
$request
);
$
updatedUser
=
$
this
->
repository
->
update
(
$user
,
$request
);
$user
=
User
::
findOrfail
(
$user
->
id
);
event
(
new
UserUpdated
(
$user
)
);
return
new
UserResource
(
$user
);
return
new
UserResource
(
$u
pdatedU
ser
);
}
}
/**
/**
* Store the specified resource in storage.
* Delete User
*
* @param User $user
* @param Request $request
*
* @return mixed
*/
*/
public
function
store
(
Request
$request
)
public
function
destroy
(
User
$user
,
Request
$request
)
{
{
$
validation
=
$this
->
validatingRequest
(
$request
);
$
this
->
repository
->
delete
(
$user
);
if
(
$validation
->
fails
())
{
return
$this
->
respond
([
return
$this
->
throwValidation
(
$validation
->
messages
()
->
first
());
'message'
=>
trans
(
'alerts.backend.users.deleted'
),
}
]);
$this
->
repository
->
create
(
$request
);
}
return
new
UserResource
(
User
::
orderBy
(
'created_at'
,
'desc'
)
->
first
());
/**
* Return the deactivate users
*
* @param Request
*
* @return \Illuminate\Http\JsonResponse
*/
public
function
deactivatedUserList
(
Request
$request
)
{
$limit
=
$request
->
get
(
'paginate'
)
?
$request
->
get
(
'paginate'
)
:
25
;
return
UserResource
::
collection
(
$this
->
repository
->
getForDataTable
(
0
,
false
)
->
paginate
(
$limit
)
);
}
/**
* Return the deleted users.
*
* @param User $user
*
* @return \Illuminate\Http\JsonResponse
*/
public
function
deleteUserList
(
Request
$request
)
{
$limit
=
$request
->
get
(
'paginate'
)
?
$request
->
get
(
'paginate'
)
:
25
;
return
UserResource
::
collection
(
$this
->
repository
->
getForDataTable
(
0
,
true
)
->
paginate
(
$limit
)
);
}
}
/**
/**
* Validation function to validate user input.
* validateUser User
*
* @param $request
* @param $action
* @param $id
*
* @return \Illuminate\Http\JsonResponse
*/
*/
public
function
validat
ingRequest
(
Request
$request
,
$string
=
''
,
$id
=
0
)
public
function
validat
eUser
(
Request
$request
,
$action
=
''
,
$id
=
0
)
{
{
$password
=
(
$string
==
'edit'
)
?
''
:
'required|min:6|confirmed'
;
$password
=
(
$action
==
'edit'
)
?
''
:
'required|min:6|confirmed'
;
$validation
=
Validator
::
make
(
$request
->
all
(),
[
$validation
=
Validator
::
make
(
$request
->
all
(),
[
'first_name'
=>
'required|max:255'
,
'first_name'
=>
'required|max:255'
,
'last_name'
=>
'required|max:255'
,
'last_name'
=>
'required|max:255'
,
...
@@ -135,19 +170,4 @@ class UsersController extends APIController
...
@@ -135,19 +170,4 @@ class UsersController extends APIController
return
$validation
;
return
$validation
;
}
}
/**
* Api to delete the resource.
*
* @param Role $role
* @param DeleteRoleRequest $request
*
* @return mixed
*/
public
function
destroy
(
User
$user
,
Request
$request
)
{
$this
->
repository
->
delete
(
$user
);
return
[
'message'
=>
'success'
];
}
}
}
app/Repositories/Backend/Access/User/UserRepository.php
View file @
17870f75
...
@@ -144,7 +144,7 @@ class UserRepository extends BaseRepository
...
@@ -144,7 +144,7 @@ class UserRepository extends BaseRepository
if
(
$user
->
update
(
$data
))
{
if
(
$user
->
update
(
$data
))
{
$user
->
status
=
isset
(
$data
[
'status'
])
?
1
:
0
;
$user
->
status
=
isset
(
$data
[
'status'
])
?
1
:
0
;
$user
->
confirmed
=
isset
(
$data
[
'confirmed'
])
?
1
:
0
;
$user
->
confirmed
=
isset
(
$data
[
'confirmed'
])
?
1
:
0
;
$u
ser
->
save
();
$u
pdatedUser
=
tap
(
$user
)
->
save
();
$this
->
checkUserRolesCount
(
$roles
);
$this
->
checkUserRolesCount
(
$roles
);
$this
->
flushRoles
(
$roles
,
$user
);
$this
->
flushRoles
(
$roles
,
$user
);
...
@@ -152,7 +152,7 @@ class UserRepository extends BaseRepository
...
@@ -152,7 +152,7 @@ class UserRepository extends BaseRepository
$this
->
flushPermissions
(
$permissions
,
$user
);
$this
->
flushPermissions
(
$permissions
,
$user
);
event
(
new
UserUpdated
(
$user
));
event
(
new
UserUpdated
(
$user
));
return
true
;
return
$updatedUser
;
}
}
throw
new
GeneralException
(
trans
(
'exceptions.backend.access.users.update_error'
));
throw
new
GeneralException
(
trans
(
'exceptions.backend.access.users.update_error'
));
...
...
composer.lock
View file @
17870f75
...
@@ -2091,16 +2091,16 @@
...
@@ -2091,16 +2091,16 @@
},
},
{
{
"name": "nesbot/carbon",
"name": "nesbot/carbon",
"version": "1.24.
1
",
"version": "1.24.
2
",
"source": {
"source": {
"type": "git",
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
"url": "https://github.com/briannesbitt/Carbon.git",
"reference": "
ef12cbd8ba5ce624f0a6a95e0850c4cc13e71e41
"
"reference": "
bba6c6e410c6b4317e37a9474aeaa753808c3875
"
},
},
"dist": {
"dist": {
"type": "zip",
"type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/
ef12cbd8ba5ce624f0a6a95e0850c4cc13e71e41
",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/
bba6c6e410c6b4317e37a9474aeaa753808c3875
",
"reference": "
ef12cbd8ba5ce624f0a6a95e0850c4cc13e71e41
",
"reference": "
bba6c6e410c6b4317e37a9474aeaa753808c3875
",
"shasum": ""
"shasum": ""
},
},
"require": {
"require": {
...
@@ -2140,7 +2140,7 @@
...
@@ -2140,7 +2140,7 @@
"datetime",
"datetime",
"time"
"time"
],
],
"time": "2018-03-
09T15:49:3
4+00:00"
"time": "2018-03-
10T10:10:1
4+00:00"
},
},
{
{
"name": "nikic/php-parser",
"name": "nikic/php-parser",
...
...
routes/api.php
View file @
17870f75
...
@@ -28,12 +28,13 @@ Route::group(['namespace' => 'Api\V1', 'prefix' => 'v1', 'as' => 'v1.'], functio
...
@@ -28,12 +28,13 @@ Route::group(['namespace' => 'Api\V1', 'prefix' => 'v1', 'as' => 'v1.'], functio
// Route::post('password/reset', 'ResetPasswordController@reset')->name('password.reset');
// Route::post('password/reset', 'ResetPasswordController@reset')->name('password.reset');
});
});
Route
::
resource
(
'users'
,
'UsersController'
,
[
'except'
=>
[
'edit'
,
'udpate'
]]);
// Users
// Users
Route
::
group
([
'prefix'
=>
'users'
],
function
()
{
Route
::
group
([
'prefix'
=>
'users'
],
function
()
{
Route
::
get
(
'deactiveUsers'
,
'UsersController@deactivatedUserList'
);
Route
::
get
(
'deactiveUsers'
,
'UsersController@deactivatedUserList'
);
Route
::
get
(
'deleteUsers'
,
'UsersController@deleteUserList'
);
Route
::
get
(
'deleteUsers'
,
'UsersController@deleteUserList'
);
});
});
Route
::
resource
(
'users'
,
'UsersController'
);
// Roles
// Roles
Route
::
resource
(
'roles'
,
'RolesController'
);
Route
::
resource
(
'roles'
,
'RolesController'
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment