Skip to content

Commit

Permalink
[#1797,webstore][s]: introduce webstore write route (which auto 401s …
Browse files Browse the repository at this point in the history
…atm).
  • Loading branch information
rufuspollock committed Feb 20, 2012
1 parent 3c7238b commit 695c7bd
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 5 deletions.
9 changes: 7 additions & 2 deletions ckan/config/routing.py
Original file line number Diff line number Diff line change
Expand Up @@ -235,8 +235,13 @@ def make_map():
map.connect('/dataset/{id}/resource/{resource_id}',
controller='package', action="resource_read"
)
map.connect('webstore', '/api/resource/{id}/data',
controller='webstore', action='data'
map.connect('webstore_read', '/api/resource/{id}/data',
controller='webstore', action='read',
conditions={'method': ['GET']}
)
map.connect('webstore_write', '/api/resource/{id}/data',
controller='webstore', action='write',
conditions={'method': ['PUT','POST']}
)

# group
Expand Down
8 changes: 6 additions & 2 deletions ckan/controllers/webstore.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
from ckan.lib.base import BaseController
from ckan.lib.base import BaseController, abort, _
import ckan.model as model

class WebstoreController(BaseController):
def data(self, id):
def read(self, id):
resource = model.Session.query(model.Resource).get(id)
print 'here'
if not resource:
abort(404)
return resource.id

def write(self, id):
abort(401, _('Not authorized to see this page'))

9 changes: 8 additions & 1 deletion ckan/tests/functional/test_webstore.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,15 @@ def teardown_class(self):
def test_read(self):
dataset = model.Package.by_name(CreateTestData.pkg_names[0])
resource_id = dataset.resources[0].id
offset = url_for('webstore', id=resource_id)
offset = url_for('webstore_read', id=resource_id)
res = self.app.get(offset)
assert_equal(res.status, 200)
assert_equal(res.body, resource_id)

def test_update(self):
dataset = model.Package.by_name(CreateTestData.pkg_names[0])
resource_id = dataset.resources[0].id
offset = url_for('webstore_write', id=resource_id)
res = self.app.post(offset)
assert res.status in [401,302]

0 comments on commit 695c7bd

Please sign in to comment.