Commit 922ad5dad61249ab89c8bda2cac78e3250b3dcca

Authored by pedro
1 parent 1fff73f9
Exists in master

Codigo funcionando com envio do registro e store do id no banco


git-svn-id: http://svn.brlight.net/svn/lightbase-neo/trunk/LBBulk@807 29b92fdf-8c97-4584-b987-84e8d3c556fa
TODO.txt
1   -- Recebe registro
2   -- Verifica se o registro já existe no lightbase:
3   - se sim, atualiza
4   - se não, cria
5   -- salva na tabela de chaves a chave do lightbase que corresponde à esse registro
6 1 \ No newline at end of file
  2 +lbbulk/view/restfulview.py line 41
  3 +lbbulk/view/restfulview.py line 48
7 4 \ No newline at end of file
... ...
development.ini
... ... @@ -12,18 +12,12 @@ pyramid.debug_notfound = false
12 12 pyramid.debug_routematch = false
13 13 pyramid.default_locale_name = en
14 14 pyramid.includes =
15   -# pyramid_debugtoolbar
16 15 pyramid_tm
17 16  
18 17 sqlalchemy.url = postgresql://postgres:postgres@10.1.0.152/projeto1
19 18  
20   -# By default, the toolbar only appears for clients from IP addresses
21   -# '127.0.0.1' and '::1'.
22   -# debugtoolbar.hosts = 0.0.0.0/0
23   -
24   -###
25   -# wsgi server configuration
26   -###
  19 +domain = http://localhost/lbgenerator
  20 +base_name = WMI
27 21  
28 22 [server:main]
29 23 use = egg:waitress#main
... ...
lbbulk/model/BulkUpload.py
... ... @@ -22,6 +22,12 @@ class BulkUploadContextFactory(SQLAlchemyORMContext):
22 22 def session_factory(self):
23 23 return session
24 24  
  25 + def create_member(self, data):
  26 + member = self.entity(**data)
  27 + self.session.add(member)
  28 + self.session.commit()
  29 + return member
  30 +
25 31 def get_member_id_as_string(self, member):
26 32 id = self.get_member_id(member)
27 33 return json.dumps(id, cls=self.json_encoder)
28 34 \ No newline at end of file
... ...
lbbulk/view/restfulview.py
1 1 from pyramid_restler.view import RESTfulView
  2 +import configparser
2 3 import json
  4 +import requests
3 5  
4 6 class RegCustomView(RESTfulView):
5 7 def _get_data(self):
  8 + """ Read json data from the post sent by some source """
  9 + print('\n\n\n\n\n\n\n\n\n\n\n\n')
6 10 content_type = self.request.content_type
7 11 if content_type == 'application/json':
8 12 data = json.loads(self.request.body)
... ... @@ -10,5 +14,36 @@ class RegCustomView(RESTfulView):
10 14 data = dict(self.request.POST)
11 15 else:
12 16 data = self.request.params
13   - data = data['json_reg']
  17 + data = self.send_to_lightbase(data)
  18 + # Must come with the external key as a value of
  19 + # 'data.json_reg.id_reg'
  20 + return data
  21 +
  22 + def send_to_lightbase(self, data):
  23 + """ Sends the register to a lightbase table and returns a dict
  24 + with the external key and lighbase's id_reg """
  25 + registro = self.is_error(data)
  26 + id_source = registro['id_source']
  27 + registro.pop('id_source', None)
  28 + registro['json_reg'] = json.loads(registro['json_reg'])
  29 + chave_externa = registro['json_reg']['id_reg']
  30 + registro['json_reg'].pop('id_reg', None)
  31 + url = self.get_url_lightbase()
  32 + r = requests.post(url, data=registro)
  33 + id_reg = r.json()
  34 + data = {
  35 + 'id_source':id_source,
  36 + 'id_reg':id_reg,
  37 + 'chave_externa':chave_externa
  38 + }
  39 + return data
  40 +
  41 + def get_url_lightbase(self): #TODO
  42 + """ Returns url from config """
  43 + domain = 'http://localhost/lbgenerator'
  44 + base_name = 'WMI'
  45 + url = domain + '/' + base_name + '/reg'
  46 + return url
  47 +
  48 + def is_error(self,data): #TODO
14 49 return data
15 50 \ No newline at end of file
... ...
production.ini
... ... @@ -16,6 +16,9 @@ pyramid.includes =
16 16  
17 17 sqlalchemy.url = postgresql://postgres:postgres@10.1.0.152/projeto1
18 18  
  19 +domain = http://localhost/lbgenerator
  20 +base_name = WMI
  21 +
19 22 [server:main]
20 23 use = egg:waitress#main
21 24 host = 0.0.0.0
... ...
setup.py
... ... @@ -18,6 +18,8 @@ requires = [
18 18 'zope.sqlalchemy',
19 19 'waitress',
20 20 'pyramid_restler',
  21 + 'requests',
  22 + 'configparser'
21 23 ]
22 24  
23 25 setup(name='LBBulk',
... ...