def add_link(prj_id, form): # prj_idでAWSのDBを検索 data = prj.get(prj_id) event = { 'event': form['event'], 'detail': "関連リンクに <a href='{}' target='_blank'>{}</a> が追加されました".format( form['link_url'], form['link_title']), 'disclosure_range': form['disclosure_range'] } _add_timeline(data, event) if 'links' not in data: data['links'] = [] data['links'].append({ 'link_title': form['link_title'], 'link_url': form['link_url'], 'disclosure_range': form['disclosure_range'] }) data = upd_prj(data) return prj_id
def join_prj(prj_id, user_id, user_name): # prj_idでAWSのDBを検索 data = prj.get(prj_id) if 'errorMessage' in data or 'errorType' in data: return None is_joined = len( list(filter(lambda m: m['user_id'] == user_id, data['members']))) > 0 if is_joined: # すでに参加済みのメンバーだった場合は、正常扱いで処理終了 return prj_id data['members'].append({ 'member_type': 'member', 'user_id': user_id, 'user_name': user_name }) event = { 'event': '新規メンバー参画', 'detail': '{} さんがプロジェクトに参加しました。'.format(user_name), 'disclosure_range': 'public' } _add_timeline(data, event) data = upd_prj(data) return prj_id
def add_timeline(prj_id, form): # prj_idでAWSのDBを検索 data = prj.get(prj_id) event = { 'event': 'ユーザ入力イベント', 'detail': form['detail'], 'disclosure_range': 'public' } _add_timeline(data, event) data = upd_prj(data) return prj_id
def get_prj(prj_id, user_id): """ 指定されたプロジェクトIDのプロジェクトを取得する """ data = prj.get(prj_id) if 'errorMessage' in data or 'errorType' in data: return None data['is_login'] = len(user_id) > 0 data['is_joined'] = len( list(filter(lambda m: m['user_id'] == user_id, data['members']))) > 0 data['is_leader'] = list( filter(lambda m: m['member_type'] == 'leader', data['members']))[0]['user_id'] == user_id return data
def complete_prj(prj_id, form): # prj_idでAWSのDBを検索 data = prj.get(prj_id) event = { 'event': form['event'], 'detail': "プロジェクトが完了しました", 'disclosure_range': 'public' } _add_timeline(data, event) data['outcome'] = form['outcome'] data['is_complete'] = True now = datetime.now() data['complete_date'] = now.isoformat() data['end_date'] = "{}/{}/{}".format(now.year, now.month, now.day) data = upd_prj(data) return prj_id
def scan_prj(): """ プロジェクトを全件取得する """ return prj.get('')
def update_prj(prj_id, new_data): data = prj.get(prj_id) data.update(new_data) prj.post(data) return data['prj_id']