Commit 1fff73f93fa710b2b15fc4f88fbca422eaa21a2b

Authored by pedro
1 parent 33b0d1d2
Exists in master

Correção na recepção de dados

git-svn-id: http://svn.brlight.net/svn/lightbase-neo/trunk/LBBulk@781 29b92fdf-8c97-4584-b987-84e8d3c556fa
development.ini
@@ -12,7 +12,7 @@ pyramid.debug_notfound = false @@ -12,7 +12,7 @@ pyramid.debug_notfound = false
12 pyramid.debug_routematch = false 12 pyramid.debug_routematch = false
13 pyramid.default_locale_name = en 13 pyramid.default_locale_name = en
14 pyramid.includes = 14 pyramid.includes =
15 - pyramid_debugtoolbar 15 +# pyramid_debugtoolbar
16 pyramid_tm 16 pyramid_tm
17 17
18 sqlalchemy.url = postgresql://postgres:postgres@10.1.0.152/projeto1 18 sqlalchemy.url = postgresql://postgres:postgres@10.1.0.152/projeto1
lbbulk/config/routing.py
1 # import lbbulk.model 1 # import lbbulk.model
2 -from lbbulk.model.Registro import RegistroContextFactory 2 +from lbbulk.model.BulkUpload import BulkUploadContextFactory
  3 +from lbbulk.model.BulkSources import BulkSourcesContextFactory
3 from lbbulk.view.restfulview import RegCustomView 4 from lbbulk.view.restfulview import RegCustomView
4 5
5 def make_routes(config): 6 def make_routes(config):
@@ -8,4 +9,6 @@ def make_routes(config): @@ -8,4 +9,6 @@ def make_routes(config):
8 """ 9 """
9 config.add_static_view('static', 'static', cache_max_age=3600) 10 config.add_static_view('static', 'static', cache_max_age=3600)
10 config.add_route('home', '/') 11 config.add_route('home', '/')
11 - config.add_restful_routes('registro', RegistroContextFactory, view=RegCustomView)  
12 \ No newline at end of file 12 \ No newline at end of file
  13 + config.add_restful_routes('sources', BulkSourcesContextFactory)
  14 + config.add_restful_routes('registro', BulkUploadContextFactory,
  15 + view=RegCustomView)
13 \ No newline at end of file 16 \ No newline at end of file
lbbulk/model/BulkSources.py 0 → 100644
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
  1 +from sqlalchemy import Table, Column, Integer, String
  2 +from pyramid_restler.model import SQLAlchemyORMContext
  3 +from lbbulk.model import Base, metadata, session
  4 +
  5 +
  6 +bulk_sources = Table('lb_bulk_sources', metadata,
  7 + Column('id_source', Integer, primary_key=True),
  8 + Column('nome_source', String, nullable=False)
  9 + )
  10 +
  11 +
  12 +# map to it
  13 +class BulkSources(Base):
  14 + __table__ = bulk_sources
  15 +
  16 +class BulkSourcesContextFactory(SQLAlchemyORMContext):
  17 + entity = BulkSources
  18 +
  19 + def session_factory(self):
  20 + return session
0 \ No newline at end of file 21 \ No newline at end of file
lbbulk/model/BulkUpload.py 0 → 100644
@@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
  1 +from sqlalchemy import Table, Column, Integer, String, ForeignKey
  2 +from pyramid_restler.model import SQLAlchemyORMContext
  3 +from lbbulk.model import Base, metadata, session
  4 +import json
  5 +
  6 +
  7 +bulk_upload = Table('lb_bulk_upload', metadata,
  8 + Column('id_reg', Integer, primary_key=True),
  9 + Column('chave_externa', String, nullable=False),
  10 + Column('id_source', Integer,
  11 + ForeignKey('lb_bulk_sources.id_source'),
  12 + nullable=False)
  13 + )
  14 +
  15 +# map to it
  16 +class BulkUpload(Base):
  17 + __table__ = bulk_upload
  18 +
  19 +class BulkUploadContextFactory(SQLAlchemyORMContext):
  20 + entity = BulkUpload
  21 +
  22 + def session_factory(self):
  23 + return session
  24 +
  25 + def get_member_id_as_string(self, member):
  26 + id = self.get_member_id(member)
  27 + return json.dumps(id, cls=self.json_encoder)
0 \ No newline at end of file 28 \ No newline at end of file
lbbulk/model/Registro.py
@@ -1,34 +0,0 @@ @@ -1,34 +0,0 @@
1 -from sqlalchemy import Table, Column, Integer, \  
2 - String, join, ForeignKey  
3 -from sqlalchemy.orm import column_property  
4 -from pyramid_restler.model import SQLAlchemyORMContext  
5 -from lbbulk.model import Base, metadata, session  
6 -  
7 -# define two Table objects  
8 -bulk_sources = Table('lb_bulk_sources', metadata,  
9 - Column('id_source', Integer, primary_key=True),  
10 - Column('nome_source', String),  
11 - )  
12 -  
13 -bulk_upload = Table('lb_bulk_upload', metadata,  
14 - Column('id_reg', Integer, primary_key=True),  
15 - Column('chave_externa', String),  
16 - Column('id_source', Integer, ForeignKey('lb_bulk_sources.id_source'))  
17 - )  
18 -  
19 -# define a join between them. This  
20 -# takes place across the bulk_sources.id_source and bulk_upload.id_source  
21 -# columns.  
22 -registro = join(bulk_sources, bulk_upload)  
23 -  
24 -# map to it  
25 -class Registro(Base):  
26 - __table__ = registro  
27 - id_source = column_property(bulk_sources.c.id_source, bulk_upload.c.id_source)  
28 -  
29 -class RegistroContextFactory(SQLAlchemyORMContext):  
30 -  
31 - entity = Registro  
32 -  
33 - def session_factory(self):  
34 - return session  
35 \ No newline at end of file 0 \ No newline at end of file
lbbulk/view/restfulview.py
@@ -2,10 +2,13 @@ from pyramid_restler.view import RESTfulView @@ -2,10 +2,13 @@ from pyramid_restler.view import RESTfulView
2 import json 2 import json
3 3
4 class RegCustomView(RESTfulView): 4 class RegCustomView(RESTfulView):
5 - def get_member(self):  
6 - id = self.request.matchdict['id']  
7 - json_reg = self.requests.params['json_reg']  
8 - json_reg = json.loads(json_reg)  
9 - ins = registro.insert().values(chave_externa=json_reg['id_reg'])  
10 - member = self.context.get_member(id)  
11 - return self.render_to_response(member)  
12 \ No newline at end of file 5 \ No newline at end of file
  6 + def _get_data(self):
  7 + content_type = self.request.content_type
  8 + if content_type == 'application/json':
  9 + data = json.loads(self.request.body)
  10 + elif content_type == 'application/x-www-form-urlencoded':
  11 + data = dict(self.request.POST)
  12 + else:
  13 + data = self.request.params
  14 + data = data['json_reg']
  15 + return data
13 \ No newline at end of file 16 \ No newline at end of file