Пример #1
0
    def get(self):

        cover_url = None
        # if IDENTIFIER_ITEM_PHOTO in req_json:
        #     cover_url = req_json[IDENTIFIER_ITEM_PHOTO]

        item_id = uuid.uuid4()
        # req_json = json.loads(self.request.body)

        # item_name = req_json[IDENTIFIER_ITEM_NAME]
        item_name = self.request.get(IDENTIFIER_ITEM_NAME)

        # expense_name = req_json[IDENTIFIER_EXPENSE_NAME]
        expense_name = self.request.get(IDENTIFIER_EXPENSE_NAME)

        # buyer_email = req_json[IDENTIFIER_BUYER_EMAIL]
        buyer_email = self.request.get(IDENTIFIER_BUYER_EMAIL)

        # sharer_email_lst = req_json[IDENTIFIER_SHARER_LIST]
        sharer_emails = self.request.get(IDENTIFIER_SHARER_LIST)
        sharer_email_lst = sharer_emails.split(",")

        expense_lst = Expense.query(Expense.expense_name == expense_name)
        expense_id = None

        # total_cost = float(req_json[IDENTIFIER_TOTAL_COST])
        cost = self.request.get(IDENTIFIER_TOTAL_COST)
        total_cost = float(cost)


        target_expense = None


        for expense in expense_lst:
            if buyer_email in expense.user_email_lst:
                expense_id = expense.expense_id
                target_expense = expense
                break

        if expense_id == None:
            response = {}
            response['error'] = 'the buyer email: ' + buyer_email + ' is not valid for this expense/apartment'
            return self.respond(**response)

        new_item = Item(item_id = str(item_id),
                        item_name = item_name,
                        cover_url = cover_url,
                        expense_id = expense_id,
                        buyer_email = buyer_email,
                        sharer_email_lst = sharer_email_lst,
                        total_cost = total_cost
                        )
        new_item.put()
        target_expense.item_id_lst.insert(0, str(item_id))
        target_expense.put()


        self.respond(item_id_id = str(item_id), status="Success")
Пример #2
0
    def get(self):

        cover_url = None
        # if IDENTIFIER_ITEM_PHOTO in req_json:
        #     cover_url = req_json[IDENTIFIER_ITEM_PHOTO]

        item_id = uuid.uuid4()
        # req_json = json.loads(self.request.body)

        # item_name = req_json[IDENTIFIER_ITEM_NAME]
        item_name = self.request.get(IDENTIFIER_ITEM_NAME)

        # expense_name = req_json[IDENTIFIER_EXPENSE_NAME]
        expense_name = self.request.get(IDENTIFIER_EXPENSE_NAME)

        # buyer_email = req_json[IDENTIFIER_BUYER_EMAIL]
        buyer_email = self.request.get(IDENTIFIER_BUYER_EMAIL)

        # sharer_email_lst = req_json[IDENTIFIER_SHARER_LIST]
        sharer_emails = self.request.get(IDENTIFIER_SHARER_LIST)
        sharer_email_lst = sharer_emails.split(",")

        expense_lst = Expense.query(Expense.expense_name == expense_name)
        expense_id = None

        # total_cost = float(req_json[IDENTIFIER_TOTAL_COST])
        cost = self.request.get(IDENTIFIER_TOTAL_COST)
        total_cost = float(cost)

        target_expense = None

        for expense in expense_lst:
            if buyer_email in expense.user_email_lst:
                expense_id = expense.expense_id
                target_expense = expense
                break

        if expense_id == None:
            response = {}
            response[
                'error'] = 'the buyer email: ' + buyer_email + ' is not valid for this expense/apartment'
            return self.respond(**response)

        new_item = Item(item_id=str(item_id),
                        item_name=item_name,
                        cover_url=cover_url,
                        expense_id=expense_id,
                        buyer_email=buyer_email,
                        sharer_email_lst=sharer_email_lst,
                        total_cost=total_cost)
        new_item.put()
        target_expense.item_id_lst.insert(0, str(item_id))
        target_expense.put()

        self.respond(item_id_id=str(item_id), status="Success")
Пример #3
0
    def get(self):
        print("get finish task request")

        task_id = self.request.get(IDENTIFIER_TASK_ID)
        total_cost = self.request.get(IDENTIFIER_TOTAL_COST)
        user_email = self.request.get(IDENTIFIER_USER_EMAIL)

        total_cost = float(total_cost)
        print("get cost " + str(total_cost))

        tasks = Task.query(Task.task_id == task_id).fetch()
        task = tasks[0]

        print("Found the task " + task.task_name)

        if task.finished:
            response = {}
            response['error'] = 'the task has already been finished'
            return self.respond(**response)
        if user_email != task.charger_email:
            response = {}
            response['error'] = 'the task has been assigned to other roommate'
            return self.respond(**response)
        task.finished = True
        task.put()
        item_id = str(uuid.uuid4())
        sharer_lst = task.candidate_lst
        # sharer_lst.remove(task.charger_email)   # newly removed this line

        print("creating item ")

        new_Item = Item(item_id=item_id,
                        cover_url=str(task.photo_blobkey),
                        expense_id=task.expense_id,
                        total_cost=total_cost,
                        buyer_email=task.charger_email,
                        sharer_email_lst=sharer_lst,
                        item_name=task.task_name)
        new_Item.put()

        expenses = Expense.query(Expense.expense_id == task.expense_id).fetch()
        if len(expenses) == 0:
            print("cannot find the expense")
        else:
            expense = expenses[0]
            item_ids = expense.item_id_lst
            item_ids.append(item_id)
            expense.item_id_lst = item_ids
            expense.put()
            print("done ")

        self.respond(item_name=task.task_name,
                     item_id=task.task_id,
                     status="Success")
Пример #4
0
    def get(self):
        print("get finish task request")

        task_id = self.request.get(IDENTIFIER_TASK_ID)
        total_cost = self.request.get(IDENTIFIER_TOTAL_COST)
        user_email = self.request.get(IDENTIFIER_USER_EMAIL)

        total_cost = float(total_cost)
        print("get cost " + str(total_cost))

        tasks = Task.query(Task.task_id == task_id).fetch()
        task = tasks[0]

        print("Found the task " + task.task_name)

        if task.finished:
            response = {}
            response['error'] = 'the task has already been finished'
            return self.respond(**response)
        if user_email != task.charger_email:
            response = {}
            response['error'] = 'the task has been assigned to other roommate'
            return self.respond(**response)
        task.finished = True
        task.put()
        item_id = str(uuid.uuid4())
        sharer_lst = task.candidate_lst
        # sharer_lst.remove(task.charger_email)   # newly removed this line

        print("creating item ")

        new_Item = Item(item_id = item_id, cover_url = str(task.photo_blobkey), expense_id = task.expense_id,
                        total_cost = total_cost,
                        buyer_email = task.charger_email,
                        sharer_email_lst = sharer_lst,
                        item_name = task.task_name)
        new_Item.put()

        expenses = Expense.query(Expense.expense_id == task.expense_id).fetch()
        if len(expenses) == 0:
            print("cannot find the expense");
        else:
            expense = expenses[0]
            item_ids = expense.item_id_lst
            item_ids.append(item_id)
            expense.item_id_lst = item_ids
            expense.put()
            print("done ")

        self.respond(item_name = task.task_name, item_id = task.task_id, status="Success")