1313 **/
1414
1515use App \Http \Controllers \GetAllTrait ;
16+ use App \Http \Controllers \Traits \RequestProcessor ;
1617use App \libs \Auth \Repositories \IGroupRepository ;
1718use App \ModelSerializers \SerializerRegistry ;
19+ use App \Services \Auth \IGroupService ;
20+ use Auth \Group ;
21+ use Illuminate \Http \JsonResponse ;
1822use OAuth2 \IResourceServerContext ;
1923use Utils \Services \ILogService ;
2024
@@ -26,21 +30,28 @@ final class OAuth2GroupApiController extends OAuth2ProtectedController
2630{
2731 use GetAllTrait;
2832
33+ use RequestProcessor;
34+
35+ private IGroupService $ service ;
36+
2937 /**
3038 * OAuth2UserApiController constructor.
3139 * @param IGroupRepository $repository
40+ * @param IGroupService $service
3241 * @param IResourceServerContext $resource_server_context
3342 * @param ILogService $log_service
3443 */
3544 public function __construct
3645 (
3746 IGroupRepository $ repository ,
47+ IGroupService $ service ,
3848 IResourceServerContext $ resource_server_context ,
3949 ILogService $ log_service ,
4050 )
4151 {
4252 parent ::__construct ($ resource_server_context , $ log_service );
4353 $ this ->repository = $ repository ;
54+ $ this ->service = $ service ;
4455 }
4556
4657 protected function getAllSerializerType (): string
@@ -76,4 +87,20 @@ public function getOrderRules(): array
7687 'slug '
7788 ];
7889 }
90+
91+ /**
92+ * @param $group_id
93+ * @param $user_id
94+ * @return JsonResponse|mixed
95+ */
96+ public function addUserToGroup ($ group_id , $ user_id ): mixed
97+ {
98+ return $ this ->processRequest (function () use ($ group_id , $ user_id ) {
99+ $ group = $ this ->repository ->getById (intval ($ group_id ));
100+ if (!$ group instanceof Group)
101+ return $ this ->error404 ();
102+ $ this ->service ->addUser2Group ($ group , intval ($ user_id ));
103+ return $ this ->updated ();
104+ });
105+ }
79106}
0 commit comments