Browse Source

drop example api

Guénaël Muller 7 years ago
parent
commit
e42e5b82fc

+ 0 - 3
tracim/__init__.py View File

@@ -14,7 +14,6 @@ from tracim.lib.utils.authentification import BASIC_AUTH_WEBUI_REALM
14 14
 from tracim.lib.utils.authorization import AcceptAllAuthorizationPolicy
15 15
 from tracim.lib.utils.authorization import TRACIM_DEFAULT_PERM
16 16
 from tracim.views.core_api.session_controller import SessionController
17
-#from tracim.views.example_api.example_api_controller import ExampleApiController
18 17
 from tracim.views.default.default_controller import DefaultController
19 18
 
20 19
 
@@ -49,8 +48,6 @@ def main(global_config, **settings):
49 48
     # Add controllers
50 49
     default_controllers = DefaultController()
51 50
     default_controllers.bind(configurator)
52
-    #example_api_controllers = ExampleApiController()
53
-    #example_api_controllers.bind(configurator)
54 51
     session_api = SessionController()
55 52
     session_api.bind(configurator)
56 53
     # TODO - G.M - 09-04-2018 - Enable swagger ui doc

+ 0 - 1
tracim/views/example_api/__init__.py View File

@@ -1 +0,0 @@
1
-# -*- coding: utf-8 -*-

+ 0 - 121
tracim/views/example_api/example_api_controller.py View File

@@ -1,121 +0,0 @@
1
-# -*- coding: utf-8 -*-
2
-# TODO - G.M - 10-04-2018 - [cleanup][tempExample] - Drop this file
3
-from datetime import datetime
4
-try:  # Python 3.5+
5
-    from http import HTTPStatus
6
-except ImportError:
7
-    from http import client as HTTPStatus
8
-from pyramid.config import Configurator
9
-
10
-from hapic.data import HapicData
11
-
12
-from tracim.exceptions import InsufficientUserWorkspaceRole, NotAuthentificated
13
-from tracim.extensions import hapic
14
-from tracim.lib.utils.authorization import require_workspace_role
15
-from tracim.models.data import UserRoleInWorkspace
16
-from tracim.views.controllers import Controller
17
-from tracim.views.example_api.schema import *
18
-
19
-
20
-class ExampleApiController(Controller):
21
-
22
-    @hapic.with_api_doc()
23
-    @hapic.output_body(AboutResponseSchema())
24
-    def about(self, context, request):
25
-        """
26
-        General information about this API.
27
-        """
28
-        return {
29
-            'version': '1.2.3',
30
-            'datetime': datetime(2017, 12, 7, 10, 55, 8, 488996),
31
-        }
32
-
33
-    @hapic.handle_exception(
34
-        NotAuthentificated,
35
-        http_code=HTTPStatus.BAD_REQUEST
36
-    )
37
-    @hapic.with_api_doc()
38
-    @hapic.output_body(ListsUserSchema())
39
-    @require_workspace_role(UserRoleInWorkspace.READER)
40
-    def get_users(self, context, request):
41
-        """
42
-        Obtain users list.
43
-        """
44
-        return {
45
-            'item_nb': 1,
46
-            'items': [
47
-                {
48
-                    'id': 4,
49
-                    'username': 'some_user',
50
-                    'display_name': 'Damien Accorsi',
51
-                    'company': 'Algoo',
52
-                },
53
-            ],
54
-            'pagination': {
55
-                'first_id': 0,
56
-                'last_id': 5,
57
-                'current_id': 0,
58
-            }
59
-        }
60
-
61
-    @hapic.with_api_doc()
62
-    @hapic.input_path(UserPathSchema())
63
-    @hapic.output_body(UserSchema())
64
-    def get_user(self, context, request, hapic_data: HapicData):
65
-        """
66
-        Obtain one user
67
-        """
68
-        return {
69
-             'id': 4,
70
-             'username': 'some_user',
71
-             'email_address': 'some.user@hapic.com',
72
-             'first_name': 'Damien',
73
-             'last_name': 'Accorsi',
74
-             'display_name': 'Damien Accorsi',
75
-             'company': 'Algoo',
76
-        }
77
-
78
-    @hapic.with_api_doc()
79
-    # TODO - G.M - 2017-12-5 - Support input_forms ?
80
-    # TODO - G.M - 2017-12-5 - Support exclude, only ?
81
-    @hapic.input_body(UserSchema(exclude=('id',)))
82
-    @hapic.output_body(UserSchema())
83
-    def add_user(self, context, request, hapic_data: HapicData):
84
-        """
85
-        Add new user
86
-        """
87
-        return {
88
-             'id': 4,
89
-             'username': 'some_user',
90
-             'email_address': 'some.user@hapic.com',
91
-             'first_name': 'Damien',
92
-             'last_name': 'Accorsi',
93
-             'display_name': 'Damien Accorsi',
94
-             'company': 'Algoo',
95
-        }
96
-
97
-    @hapic.with_api_doc()
98
-    @hapic.output_body(NoContentSchema(),
99
-                       default_http_code=204)
100
-    @hapic.input_path(UserPathSchema())
101
-    def del_user(self, context, request, hapic_data: HapicData):
102
-        """
103
-        delete user
104
-        """
105
-        return NoContentSchema()
106
-
107
-    def bind(self, configurator: Configurator):
108
-        configurator.add_route('about', '/about', request_method='GET')
109
-        configurator.add_view(self.about, route_name='about', renderer='json')
110
-
111
-        configurator.add_route('get_users', '/users', request_method='GET')  # nopep8
112
-        configurator.add_view(self.get_users, route_name='get_users', renderer='json')  # nopep8
113
-
114
-        configurator.add_route('get_user', '/users/{id}', request_method='GET')  # nopep8
115
-        configurator.add_view(self.get_user, route_name='get_user', renderer='json')  # nopep8
116
-
117
-        configurator.add_route('add_user', '/users/', request_method='POST')  # nopep8
118
-        configurator.add_view(self.add_user, route_name='add_user', renderer='json')  # nopep8
119
-
120
-        configurator.add_route('del_user', '/users/{id}', request_method='DELETE')  # nopep8
121
-        configurator.add_view(self.del_user, route_name='del_user', renderer='json')  # nopep8

+ 0 - 57
tracim/views/example_api/schema.py View File

@@ -1,57 +0,0 @@
1
-# -*- coding: utf-8 -*-
2
-# TODO - G.M - 10-04-2018 - [cleanup][tempExample] - Drop this file
3
-import marshmallow
4
-
5
-
6
-class NoContentSchema(marshmallow.Schema):
7
-    pass
8
-
9
-
10
-class AboutResponseSchema(marshmallow.Schema):
11
-    version = marshmallow.fields.String(required=True,)
12
-    datetime = marshmallow.fields.DateTime(required=True)
13
-
14
-
15
-class UserPathSchema(marshmallow.Schema):
16
-    id = marshmallow.fields.Int(
17
-        required=True,
18
-        validate=marshmallow.validate.Range(min=1),
19
-    )
20
-
21
-
22
-class UserSchema(marshmallow.Schema):
23
-    id = marshmallow.fields.Int(required=True)
24
-    username = marshmallow.fields.String(
25
-        required=True,
26
-        validate=marshmallow.validate.Regexp(regex='[\w-]+'),
27
-    )
28
-    email_address = marshmallow.fields.Email(required=True)
29
-    first_name = marshmallow.fields.String(required=True)
30
-    last_name = marshmallow.fields.String(required=True)
31
-    display_name = marshmallow.fields.String(required=True)
32
-    company = marshmallow.fields.String(required=True)
33
-
34
-
35
-class PaginationSchema(marshmallow.Schema):
36
-    first_id = marshmallow.fields.Int(required=True)
37
-    last_id = marshmallow.fields.Int(required=True)
38
-    current_id = marshmallow.fields.Int(required=True)
39
-
40
-
41
-class ListsUserSchema(marshmallow.Schema):
42
-    item_nb = marshmallow.fields.Int(
43
-        required=True,
44
-        validate=marshmallow.validate.Range(min=0)
45
-    )
46
-    items = marshmallow.fields.Nested(
47
-        UserSchema,
48
-        many=True,
49
-        only=['id', 'username', 'display_name', 'company']
50
-    )
51
-    # TODO - G.M - 2017-12-05 - Fix nested schema import into doc !
52
-    # Can't add doc for nested Schema properly
53
-    # When schema item isn't added through their own method
54
-    # Ex : Pagination Schema doesn't work here but UserSchema is ok.
55
-    pagination = marshmallow.fields.Nested(
56
-        PaginationSchema
57
-    )