|  | @@ -1,5 +1,9 @@
 | 
	
		
			
			| 1 | 1 |  # coding=utf-8
 | 
	
		
			
			| 2 | 2 |  import os
 | 
	
		
			
			|  | 3 | +from http.client import HTTPException
 | 
	
		
			
			|  | 4 | +
 | 
	
		
			
			|  | 5 | +from pyramid.httpexceptions import HTTPNoContent
 | 
	
		
			
			|  | 6 | +from pyramid.response import Response
 | 
	
		
			
			| 3 | 7 |  from sqlalchemy.orm.exc import NoResultFound
 | 
	
		
			
			| 4 | 8 |  
 | 
	
		
			
			| 5 | 9 |  from tracim import TracimRequest
 | 
	
	
		
			
			|  | @@ -9,7 +13,7 @@ from tracim.views.controllers import Controller
 | 
	
		
			
			| 9 | 13 |  from pyramid.config import Configurator
 | 
	
		
			
			| 10 | 14 |  
 | 
	
		
			
			| 11 | 15 |  from tracim.views import BASE_API_V2
 | 
	
		
			
			| 12 |  | -from tracim.views.core_api.schemas import UserSchema, OkResponse
 | 
	
		
			
			|  | 16 | +from tracim.views.core_api.schemas import UserSchema, NoContentSchema
 | 
	
		
			
			| 13 | 17 |  from tracim.views.core_api.schemas import LoginOutputHeaders
 | 
	
		
			
			| 14 | 18 |  from tracim.views.core_api.schemas import BasicAuthSchema
 | 
	
		
			
			| 15 | 19 |  from tracim.exceptions import NotAuthentificated, LoginFailed
 | 
	
	
		
			
			|  | @@ -28,7 +32,10 @@ class SessionController(Controller):
 | 
	
		
			
			| 28 | 32 |      @hapic.handle_exception(LoginFailed, http_code=HTTPStatus.BAD_REQUEST)
 | 
	
		
			
			| 29 | 33 |      # TODO - G.M - 17-04-2018 - fix output header ?
 | 
	
		
			
			| 30 | 34 |      # @hapic.output_headers()
 | 
	
		
			
			| 31 |  | -    @hapic.output_body(OkResponse())
 | 
	
		
			
			|  | 35 | +    @hapic.output_body(
 | 
	
		
			
			|  | 36 | +        NoContentSchema(),
 | 
	
		
			
			|  | 37 | +        default_http_code=HTTPStatus.NO_CONTENT
 | 
	
		
			
			|  | 38 | +    )
 | 
	
		
			
			| 32 | 39 |      def login(self, context, request: TracimRequest, hapic_data=None):
 | 
	
		
			
			| 33 | 40 |          """
 | 
	
		
			
			| 34 | 41 |          Logs user into the system
 | 
	
	
		
			
			|  | @@ -52,15 +59,19 @@ class SessionController(Controller):
 | 
	
		
			
			| 52 | 59 |          except NoResultFound:
 | 
	
		
			
			| 53 | 60 |              # User does not exist
 | 
	
		
			
			| 54 | 61 |              raise LoginFailed('Bad Credentials')
 | 
	
		
			
			| 55 |  | -        return {'message': 'ok'}
 | 
	
		
			
			|  | 62 | +        return
 | 
	
		
			
			| 56 | 63 |  
 | 
	
		
			
			| 57 | 64 |      @hapic.with_api_doc()
 | 
	
		
			
			| 58 |  | -    @hapic.output_body(OkResponse())
 | 
	
		
			
			|  | 65 | +    @hapic.output_body(
 | 
	
		
			
			|  | 66 | +        NoContentSchema(),
 | 
	
		
			
			|  | 67 | +        default_http_code=HTTPStatus.NO_CONTENT
 | 
	
		
			
			|  | 68 | +    )
 | 
	
		
			
			| 59 | 69 |      def logout(self, context, request: TracimRequest, hapic_data=None):
 | 
	
		
			
			| 60 | 70 |          """
 | 
	
		
			
			| 61 | 71 |          Logs out current logged in user session
 | 
	
		
			
			| 62 | 72 |          """
 | 
	
		
			
			| 63 |  | -        return {'message': 'ok'}
 | 
	
		
			
			|  | 73 | +
 | 
	
		
			
			|  | 74 | +        return
 | 
	
		
			
			| 64 | 75 |  
 | 
	
		
			
			| 65 | 76 |      @hapic.with_api_doc()
 | 
	
		
			
			| 66 | 77 |      @hapic.handle_exception(
 | 
	
	
		
			
			|  | @@ -69,7 +80,6 @@ class SessionController(Controller):
 | 
	
		
			
			| 69 | 80 |      )
 | 
	
		
			
			| 70 | 81 |      @hapic.output_body(
 | 
	
		
			
			| 71 | 82 |          UserSchema(),
 | 
	
		
			
			| 72 |  | -        default_http_code=HTTPStatus.OK,
 | 
	
		
			
			| 73 | 83 |      )
 | 
	
		
			
			| 74 | 84 |      def whoami(self, context, request: TracimRequest, hapic_data=None):
 | 
	
		
			
			| 75 | 85 |          """
 | 
	
	
		
			
			|  | @@ -88,7 +98,6 @@ class SessionController(Controller):
 | 
	
		
			
			| 88 | 98 |          configurator.add_view(
 | 
	
		
			
			| 89 | 99 |              self.login,
 | 
	
		
			
			| 90 | 100 |              route_name='login',
 | 
	
		
			
			| 91 |  | -            renderer='json'
 | 
	
		
			
			| 92 | 101 |          )
 | 
	
		
			
			| 93 | 102 |          # Logout
 | 
	
		
			
			| 94 | 103 |          configurator.add_route(
 | 
	
	
		
			
			|  | @@ -100,7 +109,6 @@ class SessionController(Controller):
 | 
	
		
			
			| 100 | 109 |          configurator.add_view(
 | 
	
		
			
			| 101 | 110 |              self.logout,
 | 
	
		
			
			| 102 | 111 |              route_name='logout',
 | 
	
		
			
			| 103 |  | -            renderer='json'
 | 
	
		
			
			| 104 | 112 |          )
 | 
	
		
			
			| 105 | 113 |          # Whoami
 | 
	
		
			
			| 106 | 114 |          configurator.add_route(
 | 
	
	
		
			
			|  | @@ -111,5 +119,4 @@ class SessionController(Controller):
 | 
	
		
			
			| 111 | 119 |          configurator.add_view(
 | 
	
		
			
			| 112 | 120 |              self.whoami,
 | 
	
		
			
			| 113 | 121 |              route_name='whoami',
 | 
	
		
			
			| 114 |  | -            renderer='json'
 | 
	
		
			
			| 115 | 122 |          )
 |