def list_transactions(self): request_json_py = {"only_uncategorised": "True"} request_json_str = json.dumps(request_json_py) request_json = json.loads(request_json_str) transactions_response = GetTransactions(request_json) transactions_json = transactions_response.get_json() var_today = datetime.now(pytz.timezone("Africa/Johannesburg")) var_today_str = var_today.strftime("%Y-%m-%d") parent_message = self.client.chat_postMessage( channel=self.SLACK_CHANNEL_ID, blocks=[ SlackComposer.MessageBlock_Divider(), SlackComposer.MessageBlock_TextHeader( ":construction: You have {} uncategorised transactions ({})" .format(len(transactions_json), var_today_str)) ]) parent_ts = parent_message["ts"] for index in transactions_json: self.client.chat_postMessage( channel=self.SLACK_CHANNEL_ID, attachments=SlackComposer.Attachment_Transaction( transactions_json[index]), reply_broadcast="false", thread_ts=parent_ts) return make_response("", 200)
def new_goal_modal(self, trigger_id): view = SlackComposer.Modal_Goal( "New Goal", "The following form will help you to create a new goal.") self.client.views_open(trigger_id=trigger_id, view=view) return make_response("", 200)
def categorise_transaction(self, transaction_uuid, category_id, message_ts): # Get transaction request_json_py = {"doc_id": transaction_uuid} request_json_str = json.dumps(request_json_py) request_json = json.loads(request_json_str) response = GetTransactions(request_json) transaction_json = response.get_json() transaction_json["0"]["budget_category"] = category_id # Update transaction UpdateTransaction(transaction_json["0"], transaction_uuid) # Get transaction request_json_py = {"doc_id": transaction_uuid} request_json_str = json.dumps(request_json_py) request_json = json.loads(request_json_str) response = GetTransactions(request_json) transaction_json = response.get_json() # Update transaction on Slack self.client.chat_update( channel=self.SLACK_CHANNEL_ID, ts=message_ts, attachments=SlackComposer.Attachment_Transaction( transaction_json["0"]), ) return make_response("", 200)
def AvatarUpdate_FormatMessage(self, data): # Only send avatar image if level changed or if report type imageUrl = None level = None if data["level_diff"] != 0 or "report" in data: if self.BUCKET_PATH is False: return level = str(data["level"]) imageUrl = self.BUCKET_PATH.replace("{REPLACE_LEVEL}", level) # imageBlock = SlackComposer.MessageBlock_Image(imageUrl, level) # Load header and stats header = SlackComposer.AvatarUpdate_GetHeader(data) stats = SlackComposer.AvatarUpdate_GetStats(data) message_blocks = [ SlackComposer.MessageBlock_Divider(), SlackComposer.MessageBlock_TextHeader(header), SlackComposer.MessageBlock_Text(stats) ] if imageUrl is not None: message_blocks.append( SlackComposer.MessageBlock_Image(imageUrl, level)) parent_message = self.client.chat_postMessage( channel=self.SLACK_CHANNEL_ID, blocks=message_blocks) return make_response("", parent_message.status_code)
def refresh_goal_modal(self, current_goal_data, view_id, goal_id, message_ts, title, description): # request_json_py = {"active": "true", "doc_id": goal_id} # request_json_str = json.dumps(request_json_py) # request_json = json.loads(request_json_str) # goals_response = GetGoals(request_json) # goals_json = goals_response.get_json() goal = Goal() goal.setup_goal(current_goal_data) view = SlackComposer.Modal_Goal(title, description, goal, goal_id, message_ts) self.client.views_update(view=view, view_id=view_id) return make_response("", 200)
def post_transactions_to_channel(self, transaction_ids): request_json = json.loads(transaction_ids) transactions_response = GetTransactions(request_json) transactions_json = transactions_response.get_json() for index in transactions_json: self.client.chat_postMessage( channel=self.SLACK_CHANNEL_ID, attachments=SlackComposer.Attachment_Transaction( transactions_json[index]), reply_broadcast="false") return make_response("", 200)
def update_goal(self, request_json_py, goal_uuid, message_ts): request_json_str = json.dumps(request_json_py) request_json = json.loads(request_json_str) UpdateGoal(request_json, goal_uuid) # Get goal request_json_py = {"doc_id": goal_uuid} request_json_str = json.dumps(request_json_py) request_json = json.loads(request_json_str) response = GetGoals(request_json) goal_json = response.get_json() # Update transaction on Slack self.client.chat_update( channel=self.SLACK_CHANNEL_ID, ts=message_ts, blocks=SlackComposer.Attachment_Goal(goal_json["0"]), ) return make_response("", 200)
def update_goal_modal(self, goal_id, trigger_id, message_ts): request_json_py = {"active": "true", "doc_id": goal_id} request_json_str = json.dumps(request_json_py) request_json = json.loads(request_json_str) goals_response = GetGoals(request_json) goals_json = goals_response.get_json() goal = Goal() # goal_doc_id = goals_json["0"]["doc_id"] goal.setup_goal(goals_json["0"]) view = SlackComposer.Modal_Goal( "Update Goal", "The following form will help you to update a goal.", goal, goal_id, message_ts) self.client.views_open(trigger_id=trigger_id, view=view) return make_response("", 200)