MCPcopy Index your code
hub / github.com/PostmonAPI/postmon / MongoDb

Class MongoDb

database.py:7–56  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5
6
7class MongoDb(object):
8
9 _fields = [
10 'logradouro',
11 'bairro',
12 'cidade',
13 'estado',
14 'complemento'
15 ]
16
17 def __init__(self, address='localhost'):
18 self._client = pymongo.MongoClient(address)
19 USERNAME = os.environ.get('POSTMON_DB_USER')
20 PASSWORD = os.environ.get('POSTMON_DB_PASSWORD')
21 if all((USERNAME, PASSWORD)):
22 self._client.postmon.authenticate(USERNAME, PASSWORD)
23 self._db = self._client.postmon
24
25 def get_one(self, cep, **kwargs):
26 return self._db.ceps.find_one({'cep': cep}, **kwargs)
27
28 def get_one_uf(self, sigla, **kwargs):
29 return self._db.ufs.find_one({'sigla': sigla}, **kwargs)
30
31 def get_one_cidade(self, sigla_uf_nome_cidade, **kwargs):
32 spec = {'sigla_uf_nome_cidade': sigla_uf_nome_cidade}
33 return self._db.cidades.find_one(spec, **kwargs)
34
35 def get_one_uf_by_nome(self, nome, **kwargs):
36 return self._db.ufs.find_one({'nome': nome}, **kwargs)
37
38 def insert_or_update(self, obj, **kwargs):
39
40 update = {'$set': obj}
41 empty_fields = set(self._fields) - set(obj)
42 update['$unset'] = dict((x, 1) for x in empty_fields)
43
44 self._db.ceps.update({'cep': obj['cep']}, update, upsert=True)
45
46 def insert_or_update_uf(self, obj, **kwargs):
47 update = {'$set': obj}
48 self._db.ufs.update({'sigla': obj['sigla']}, update, upsert=True)
49
50 def insert_or_update_cidade(self, obj, **kwargs):
51 update = {'$set': obj}
52 chave = 'sigla_uf_nome_cidade'
53 self._db.cidades.update({chave: obj[chave]}, update, upsert=True)
54
55 def remove(self, cep):
56 self._db.ceps.remove({'cep': cep})

Callers 1

setUpMethod · 0.90

Calls

no outgoing calls

Tested by 1

setUpMethod · 0.72