예제 #1
0
    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))
예제 #2
0
    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))
예제 #3
0
    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))
예제 #4
0
    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))
예제 #5
0
    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)
예제 #6
0
    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)
예제 #7
0
    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)
예제 #8
0
    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)