def process(self): from voluptuous import Schema from appname.transaction import Transaction from appname.transaction import transaction_schema transaction = json.loads(self.request.body) schema = Schema(transaction_schema, extra=True) try: schema(transaction) except: logging.exception('validation failed') logging.info(transaction) transaction_entity = Transaction.from_dict(transaction) transaction_entity.put() user_id = users.get_current_user().user_id() person = Person.get_by_id(user_id) if transaction_entity.is_new: what = "Transaction Created." else: what = "Transaction Updated." what = "%s $%s at %s" % (what, transaction_entity.amount, transaction_entity.vendor_name) loc = "" if person is not None and person.location_info is not None: loc = person.location_info.get('latlong') message = {'location': loc, 'what': what} event.send("ACTIVITY", message) logging.info("Sending message: %s" % message) out = transaction_entity.to_dict() self.response.out.write(json.dumps(out))
def get(self): from appname.transaction import Transaction limit = int(self.request.get('limit', 40)) query = Transaction.query() if limit > 0: query = query.fetch(limit) out = [entity.to_dict() for entity in query] self.response.out.write(json.dumps(out))
def delete(self): from google.appengine.ext import ndb from appname.transaction import Transaction urlsafe = self.request.path.rsplit('/', 1)[-1] if not urlsafe: return key = ndb.Key(urlsafe=urlsafe) if key.kind() != Transaction._get_kind(): self.error(500) return key.delete() logging.info("Deleted transaction with key: %s", urlsafe)
def get(self): from google.appengine.ext import ndb from appname.transaction import Transaction from appname.transaction import get_transactions_from_google_spreadsheet data = get_transactions_from_google_spreadsheet() #logging.info(data) transactions = [] for d in data: transaction_data = {'date': d[0], 'vendor': d[1], 'amount': d[2]} transactions.append(Transaction.from_dict(transaction_data)) if transactions: ndb.put_multi(transactions)
def get(self): from google.appengine.ext import ndb from appname.transaction import Transaction from appname.transaction import get_transactions_from_google_spreadsheet data = get_transactions_from_google_spreadsheet() #logging.info(data) transactions = [] for d in data: transaction_data = { 'date': d[0], 'vendor': d[1], 'amount': d[2] } transactions.append(Transaction.from_dict(transaction_data)) if transactions: ndb.put_multi(transactions)