def post(self, request, id): # reminding someone t_u = ResourceUser.objects.get(id=id) t_u.reminded = datetime.now() t_u.save() if t_u.user.slack_user_id: s = SlackBot() s.set_user(t_u.user) blocks = s.format_resource_block(pre_message=_('Don\'t forget this to do item!'), items=[t_u]) s.send_message(blocks=blocks) else: send_reminder_email(t_u) return Response()
def sync_slack(self, request): s = SlackBot() users = s.get_all_users() for i in users: if i['id'] != 'USLACKBOT' and not i[ 'is_bot'] and 'first_name' in i['profile']: get_user_model().objects.get_or_create( email=i['profile']['email'], defaults={ 'position': i['profile']['title'], 'phone': i['profile']['phone'], 'first_name': i['profile']['first_name'], 'last_name': i['profile']['last_name'] }) return Response()
def put(self, request, id): # reopen task t_u = ResourceUser.objects.get(id=id) t_u.completed_course = False t_u.answers.clear() t_u.save() if t_u.user.slack_user_id: s = SlackBot() s.set_user(t_u.user) blocks = s.format_resource_block( pre_message=_('This task has just been reopened! ' + request.data['message']), items=[t_u]) s.send_message(blocks=blocks) else: email_reopen_task(t_u, request.data['message'], t_u.user) return Response()
def access(self, request, pk=None): new_hire = self.get_object() if request.method == 'PUT': ScheduledAccess.objects.create( new_hire=new_hire, integration=request.data['integration'], email=request.data['email']) return Response({'status': 'pending'}) s = SlackBot() if request.data['integration'] == 1 else Google() if s.find_by_email(new_hire.email): return Response({'status': 'exists'}) items = ScheduledAccess.objects.filter( new_hire=new_hire, integration=request.data['integration']).exclude(status=1) if items.exists(): return Response({'status': 'pending'}) return Response({'status': 'not_found'})
def give_slack_access(self, request, pk): user = self.get_object() s = SlackBot() response = s.find_by_email(user.email) if response: user.slack_user_id = response['user']['id'] user.save() translation.activate(user.language) blocks = [{ "type": "section", "text": { "type": "mrkdwn", "text": _("Click on the button to see all the categories that are available to you!" ) } }, { "type": "actions", "elements": [{ "type": "button", "text": { "type": "plain_text", "text": _("resources") }, "style": "primary", "value": "show:resources" }] }] s.set_user(user) res = s.send_message(blocks=blocks) user.slack_channel_id = res['channel'] user.save() return Response() return Response( { "error": _('We couldn\'t find anyone in Slack with the same email address.' ) }, status=status.HTTP_400_BAD_REQUEST)
def sync_slack(self, request): s = SlackBot() users = s.get_all_users() for i in users: if i['id'] != 'USLACKBOT' and not i['is_bot'] and 'real_name' in i[ 'profile']: if len(i['profile']['real_name'].split()) > 1: first_name = i['profile']['real_name'].split()[0] last_name = i['profile']['real_name'].split()[1] else: first_name = i['profile']['real_name'] last_name = '' get_user_model().objects.get_or_create( email=i['profile']['email'], defaults={ 'position': i['profile']['title'], 'phone': i['profile']['phone'], 'first_name': first_name, 'last_name': last_name }) return Response()