Add simple API for getting OFXSources

We'll use this in the API to show a list of accounts before adding a new
one
This commit is contained in:
Eli Ribble 2016-05-18 15:54:28 -06:00
parent 4f3ef1b102
commit 08814d6d9e
3 changed files with 47 additions and 3 deletions

22
vanth/api/ofxsource.py Normal file
View File

@ -0,0 +1,22 @@
import sepiida.endpoints
import sepiida.fields
import vanth.platform.ofxsource
class OFXSource(sepiida.endpoints.APIEndpoint):
ENDPOINT = '/ofxsource/'
SIGNATURE = sepiida.fields.JSONObject(s={
'name' : sepiida.fields.String(),
'fid' : sepiida.fields.String(),
'bankid' : sepiida.fields.String(),
'uri' : sepiida.fields.URI('ofxsource'),
})
@staticmethod
def list():
return vanth.platform.ofxsource.by_filter({})
@staticmethod
def get(uuid):
return vanth.platform.ofxsource.by_filter({'uuid': [str(uuid)]})[0]

View File

@ -0,0 +1,20 @@
import logging
import chryso.connection
import sepiida.routing
import vanth.tables
LOGGER = logging.getLogger(__name__)
def by_filter(filters):
engine = chryso.connection.get()
LOGGER.debug("Getting ofxsources by filter %s", filters)
query = vanth.tables.OFXSource.select()
results = engine.execute(query).fetchall()
return [{
'name' : result[vanth.tables.OFXSource.c.name],
'fid' : result[vanth.tables.OFXSource.c.fid],
'bankid' : result[vanth.tables.OFXSource.c.bankid],
'uri' : sepiida.routing.uri('ofxsource', result[vanth.tables.OFXSource.c.uuid]),
} for result in results]

View File

@ -7,6 +7,7 @@ import sepiida.cors
import sepiida.endpoints
import vanth.api.about
import vanth.api.ofxsource
import vanth.api.session
import vanth.api.user
import vanth.auth
@ -63,8 +64,9 @@ def create_app(config):
app.route('/login/', methods=['GET', 'POST', 'DELETE'])(login)
app.route('/logout/', methods=['POST'])(logout)
sepiida.endpoints.add_resource(app, vanth.api.about.About, endpoint='about')
sepiida.endpoints.add_resource(app, vanth.api.user.User, endpoint='user')
sepiida.endpoints.add_resource(app, vanth.api.session.Session, endpoint='session')
sepiida.endpoints.add_resource(app, vanth.api.about.About, endpoint='about')
sepiida.endpoints.add_resource(app, vanth.api.ofxsource.OFXSource, endpoint='ofxsource')
sepiida.endpoints.add_resource(app, vanth.api.session.Session, endpoint='session')
sepiida.endpoints.add_resource(app, vanth.api.user.User, endpoint='user')
return app