1717use models \exceptions \ValidationException ;
1818use OAuth2 \IResourceServerContext ;
1919use Utils \Services \ILogService ;
20+ use App \libs \OAuth2 \IUserScopes ;
21+ use OpenApi \Attributes as OA ;
22+ use Symfony \Component \HttpFoundation \Response as HttpResponse ;
2023/**
2124 * Class OAuth2DisqusSSOApiController
2225 * @package App\Http\Controllers\Api\OAuth2
@@ -40,6 +43,49 @@ public function __construct
4043 $ this ->service = $ service ;
4144 }
4245
46+ #[OA \Get(
47+ path: '/api/v1/sso/disqus/{forum_slug}/profile ' ,
48+ operationId: 'getDisqusUserProfile ' ,
49+ summary: 'Get Disqus user profile for a forum ' ,
50+ security: [['OAuth2DisqusSSOSecurity ' => [IUserScopes::SSO ]]],
51+ tags: ['Disqus SSO ' ],
52+ parameters: [
53+ new OA \Parameter (
54+ name: 'forum_slug ' ,
55+ description: 'Forum slug ' ,
56+ in: 'path ' ,
57+ required: true ,
58+ schema: new OA \Schema (type: 'string ' )
59+ ),
60+ ],
61+ responses: [
62+ new OA \Response (
63+ response: HttpResponse::HTTP_OK ,
64+ description: 'OK ' ,
65+ content: new OA \JsonContent (ref: '#/components/schemas/DisqusUserProfileSerialized ' )
66+ ),
67+ new OA \Response (
68+ response: HttpResponse::HTTP_NOT_FOUND ,
69+ description: 'Not Found '
70+ ),
71+ new OA \Response (
72+ response: HttpResponse::HTTP_PRECONDITION_FAILED ,
73+ description: 'Validation Error '
74+ ),
75+ new OA \Response (
76+ response: HttpResponse::HTTP_INTERNAL_SERVER_ERROR ,
77+ description: 'Server Error '
78+ ),
79+ new OA \Response (
80+ response: HttpResponse::HTTP_UNAUTHORIZED ,
81+ description: 'Unauthorized '
82+ ),
83+ new OA \Response (
84+ response: HttpResponse::HTTP_FORBIDDEN ,
85+ description: 'Forbidden '
86+ ),
87+ ]
88+ )]
4389 /**
4490 * @param string $forum_slug
4591 * @return \Illuminate\Http\JsonResponse|mixed
0 commit comments