Skip to content

Commit b014052

Browse files
committed
Review and overhall of codebase for a 1.x release.
Deprecated first version of api and made api2 api. Moved auth into api.mixins Support features from odin 1.x Dropped support for South (seriously use Django Migrations!)
1 parent 6413de0 commit b014052

11 files changed

Lines changed: 171 additions & 579 deletions

File tree

baldr/api.py renamed to baldr/api/__init__.py

Lines changed: 124 additions & 296 deletions
Large diffs are not rendered by default.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# -*- coding: utf-8 -*-
2+
13
# Well known methods
24
GET = 'GET'
35
HEAD = 'HEAD'

baldr/auth.py renamed to baldr/api/mixins.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# -*- coding: utf-8 -*-
2-
from baldr.api import ResourceApiCommon
2+
from baldr.api import ResourceApi
33
from baldr.exceptions import ImmediateErrorHttpResponse
44

55

6-
class LoginRequiredMixin(ResourceApiCommon):
6+
class LoginRequiredMixin(ResourceApi):
77
"""
88
Ensure that a user has logged in.
99
"""
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1+
# -*- coding: utf-8 -*-
12
from __future__ import absolute_import
3+
24
from django.shortcuts import get_object_or_404
35
from odin import registration
46
from odin.exceptions import CodecDecodeError
7+
58
from . import ResourceApi, listing, collection, create, detail, update, patch, delete
69
from ..exceptions import ImmediateErrorHttpResponse
710

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
1+
# -*- coding: utf-8 -*-
12
from __future__ import absolute_import
3+
24
import six
5+
36
from baldr.resources import Listing
7+
48
from . import constants
59

610
__all__ = (
711
# Basic routes
8-
'collection', 'collection_action', 'resource', 'resource_action', 'route',
9-
# Pending deprecation routes
10-
'detail_route', 'action', 'detail_action',
12+
'route', 'action', 'collection', 'collection_action',
13+
'detail_route', 'detail_action',
1114
# Handlers
1215
'list_response',
1316
# Shortcuts
@@ -53,10 +56,10 @@ def list_items(self, request):
5356
route_number = _route_count
5457
_route_count += 1
5558

56-
def inner(func):
57-
func.route = (route_number, path_type, method, name)
58-
func.resource = resource
59-
return func
59+
def inner(f):
60+
f.route = (route_number, path_type, method, name)
61+
f.resource = resource
62+
return f
6063

6164
return inner(func) if func else inner
6265

@@ -66,7 +69,7 @@ def inner(func):
6669
def resource_route(func=None, name=None, method=constants.GET, resource=None):
6770
return route(func, name, constants.PATH_TYPE_RESOURCE, method, resource)
6871

69-
detail_route = detail_action = resource = resource_action = resource_route
72+
detail_route = detail_action = resource_route
7073

7174

7275
# Handlers
@@ -75,12 +78,12 @@ def list_response(func=None, default_offset=0, default_limit=50):
7578
"""
7679
Handle processing a list. It is assumed decorator will operate on a class.
7780
"""
78-
def inner(func):
81+
def inner(f):
7982
def wrapper(self, request, *args, **kwargs):
8083
# Get paging args from query string
8184
offset = kwargs['offset'] = int(request.GET.get('offset', default_offset))
8285
limit = kwargs['limit'] = int(request.GET.get('limit', default_limit))
83-
result = func(self, request, *args, **kwargs)
86+
result = f(self, request, *args, **kwargs)
8487
if result is not None:
8588
if isinstance(result, tuple) and len(result) == 2:
8689
result, total_count = result

baldr/api2/__init__.py

Lines changed: 0 additions & 137 deletions
This file was deleted.

baldr/form_fields.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
# -*- coding: utf-8 -*-
2+
import odin
3+
import six
4+
25
from django.core import exceptions as django_exceptions
36
from django.forms import widgets
47
from django.forms.fields import CharField
58
from django.utils.translation import ugettext_lazy as _
6-
import odin
79
from odin import exceptions as odin_exceptions
810
from odin.codecs import json_codec
9-
import six
11+
from odin.utils import getmeta
1012

1113

1214
class ResourceField(CharField):
@@ -57,7 +59,7 @@ def to_python(self, value):
5759
raise django_exceptions.ValidationError(str(ve))
5860

5961
raise django_exceptions.ValidationError(
60-
self.error_messages['invalid'] % self.resource_type._meta.resource_name, code='invalid'
62+
self.error_messages['invalid'] % getmeta(self.resource_type).resource_name, code='invalid'
6163
)
6264

6365
def validate(self, value):
@@ -76,7 +78,7 @@ def validate(self, value):
7678
raise django_exceptions.ValidationError(ve.messages)
7779
else:
7880
raise django_exceptions.ValidationError(
79-
self.error_messages['invalid'] % self.resource_type._meta.resource_name, code='invalid')
81+
self.error_messages['invalid'] % getmeta(self.resource_type).resource_name, code='invalid')
8082

8183

8284
class ResourceListField(ResourceField):
@@ -99,7 +101,7 @@ def to_python(self, value):
99101
raise django_exceptions.ValidationError(str(ve))
100102

101103
raise django_exceptions.ValidationError(
102-
self.error_messages['invalid'] % self.resource_type._meta.resource_name, code='invalid')
104+
self.error_messages['invalid'] % getmeta(self.resource_type).resource_name, code='invalid')
103105

104106
def validate(self, value):
105107
if value is None:
@@ -118,5 +120,5 @@ def validate(self, value):
118120
# Unknown type
119121
else:
120122
raise django_exceptions.ValidationError(
121-
self.error_messages['invalid'] % self.resource_type._meta.resource_name, code='invalid'
123+
self.error_messages['invalid'] % getmeta(self.resource_type).resource_name, code='invalid'
122124
)

baldr/model_api.py

Lines changed: 0 additions & 101 deletions
This file was deleted.

0 commit comments

Comments
 (0)