def send2workwechat(self): if not self.pic: myLogger.error('No pic found') return False, 'No pic found' if not self.corp: myLogger.error('No corp info') return False, 'No corp info' try: agent = self.corp.apps.all().get(name=AGENT_NAME) except CorpApp.DoesNotExist: myLogger.error('Corp [{0}] does NOT have agent'.format( self.corp.name)) return False, 'Corp [{0}] does NOT have agent'.format( self.corp.name) wechat = WorkWechat(agent) filepath = self.pic.path filename = os.path.basename(filepath) content_type = mimetypes.guess_type(filepath)[0] with open(filepath, 'rb') as filedata: media_file = (filename, filedata, content_type) status, res = wechat.upload_image(media_file) if not status: myLogger.error(res.get('errmsg')) return False, res.get('errmsg') myLogger.info(res) self.wechat_url = res.get('url') self.save() return True, ''
def sync(self, request): result = {'result': 'FAIL', 'message': '', 'code': 20000} corpid = request.data.get('corpid') try: corp = Corporation.objects.get(id=corpid) except Corporation.DoesNotExist: myLogger.error('公司[{0}]不存在'.format(corpid)) result['message'] = '公司[{0}]不存在'.format(corpid) return Response(result) try: myapp = CorpApp.objects.get(corp=corp, agent_id=AGENT_ID) except CorpApp.DoesNotExist: myLogger.error('应用获取失败') result['message'] = '应用获取失败' return Response(result) wechat = WorkWechat(myapp) wechat = WorkWechat(myapp) status, res = wechat.get_groupchat_list() if not status: result['message'] = res.get('errmsg') return Response(result) groupchat_list = res.get('group_chat_list') for g in groupchat_list: chat_id = g.get('chat_id') chat_status = g.get('status') # Fetch the detail of the groupchat status, res = wechat.get_groupchat_detail(chat_id) if not status: myLogger.error( 'Error in fetch the groupchat detail: {0}'.format( res.get('errmsg'))) chat_detail = res.get('group_chat') a_chat, created = GroupChat.objects.get_or_create(corp=corp, chat_id=chat_id) a_chat.name = chat_detail.get('name') a_chat.owner = chat_detail.get('owner') a_chat.create_time = chat_detail.get('create_time') a_chat.notice = chat_detail.get('notice', '') a_chat.members = chat_detail.get('member_list') a_chat.status = chat_status a_chat.save() result['result'] = 'OK' return Response(result)
def destroy(self, request, *args, **kwargs): result = {'result': 'FAIL', 'message': '', 'code': 20000} instance = self.get_object() try: myapp = CorpApp.objects.get(corp=instance.taggroup.corp, agent_id='crm') except CorpApp.DoesNotExist: myLogger.debug('Failed to delete the tag: [{0}]'.format( instance.tagname)) result['message'] = 'Failed to delete the tag: [{0}]'.format( instance.tagname) return Response(result) status, res = WorkWechat(myapp).delete_corp_tag([instance.tagid]) if not status: myLogger.debug(res.get('errmsg')) result['message'] = res.get('errmsg') return Response(result) else: myLogger.debug('Successfully deleted the tag: [{0}]'.format( instance.tagname)) tgroup = instance.taggroup instance.delete() # If all the tags under the group were deleted, delete the taggroup if tgroup.tags.count() == 0: tgroup.delete() result['result'] = 'OK' return Response(result)
def get_tag_users(self, request): result = {'result': 'FAIL', 'message': ''} corpid = request.data.get('corpid') try: corp = Corporation.objects.get(id=corpid) except Corporation.DoesNotExist: myLogger.error('公司[{0}]不存在'.format(corpid)) result['message'] = '公司[{0}]不存在'.format(corpid) return Response(result) try: myapp = CorpApp.objects.get(corp=corp, agent_id=AGENT_ID) except CorpApp.DoesNotExist: myLogger.error('应用获取失败') result['message'] = '应用获取失败' return Response(result) tagid = request.data.get('tagid') status, res = WorkWechat(myapp).get_user_from_tag(tagid) if not status: result['message'] = res.get('errmsg') return Response(result) result['result'] = 'OK' result['tagname'] = res.get('tagname') result['userlist'] = res.get('userlist') result['partylist'] = res.get('partylist') return Response(result)
def update(self, instance, validated_data): remark = validated_data.get('remark', instance.remark) description = validated_data.get('description', instance.description) remark_corp_name = validated_data.get('remark_corp_name', instance.description) remark_mobiles = validated_data.get('remark_mobiles', instance.remark_mobiles) myLogger.debug('rms: {0}'.format(remark_mobiles)) try: myapp = CorpApp.objects.get(corp=instance.member.corp, agent_id=AGENT_ID) except CorpApp.DoesNotExist: raise serializers.ValidationError('APP信息获取失败') status, res = WorkWechat(myapp).update_customer_remark(instance.member.userid, instance.customer.external_userid, remark=remark, description=description, remark_company=remark_corp_name, remark_mobiles=json.loads(remark_mobiles)) myLogger.debug('{0}:{1}'.format(status, res)) if not status: raise serializers.ValidationError(res.get("errmsg")) instance.remark = remark instance.description = description instance.remark_corp_name = remark_corp_name instance.remark_mobiles = remark_mobiles instance.save() return instance
def update(self, instance, validated_data): try: myapp = CorpApp.objects.get(corp=instance.corp, agent_id='contact') except CorpApp.DoesNotExist: raise serializers.ValidationError('通讯录APP信息获取失败') name = validated_data.get('name', instance.name) #name_en = validated_data.get('name_en', instance.name_en) parent = validated_data.get('parent', instance.parent) order = validated_data.get('order', instance.order) status, res = WorkWechat(myapp).update_department( instance.department_id, name=name, parentid=parent.department_id, order=order) if not status: raise serializers.ValidationError(res.get("errmsg")) instance.name = name instance.parent = parent instance.order = order instance.save() return instance
def create(self, validated_data): corp = validated_data.get('corp') try: myapp = CorpApp.objects.get(corp=corp, agent_id='contact') except CorpApp.DoesNotExist: raise serializers.ValidationError('通讯录APP信息获取失败') parent = validated_data.get('parent') order = validated_data.get('order') if parent: parentid = parent.department_id else: parentid = 1 status, res = WorkWechat(myapp).create_department( validated_data.get('name'), parentid, order) if not status: raise serializers.ValidationError(res.get("errmsg")) myLogger.info('Successfully created the department: {0}'.format( validated_data.get('name'))) department_id = res.get('id') department = Department(corp=validated_data.get('corp'), name=validated_data.get('name'), department_id=department_id, parent=parent, order=order) department.save() return department
def create(self, validated_data): corp = validated_data.get('corp') try: myapp = CorpApp.objects.get(corp=corp, agent_id=AGENT_ID) except CorpApp.DoesNotExist: raise serializers.ValidationError('APP信息获取失败') wechat = WorkWechat(myapp) status, res = wechat.add_contact_way( userid_li=validated_data.get('user', []), party_li=validated_data.get('party', []), type=validated_data.get('type', 2), scene=validated_data.get('scene', 2), style=validated_data.get('style', 1), remark=validated_data.get('remark', ''), skip_verify=validated_data.get('skip_verify', True), state=validated_data.get('state', '') ) if not status: raise serializers.ValidationError(res.get("errmsg")) config_id = res.get('config_id') myLogger.info('Successfully created the contactme: {0}'.format(config_id)) a_contactme = ContactMe(corp=corp, config_id=config_id, user=validated_data.get('user', []), party=validated_data.get('party', []), type=validated_data.get('type', 2), scene=validated_data.get('scene', 2), style=validated_data.get('style', 1), remark=validated_data.get('remark', ''), skip_verify=validated_data.get('skip_verify', True), state=validated_data.get('state', ''), tags=validated_data.get('tags', []), welcome_code=validated_data.get('welcome_code', {})) status, res = wechat.get_contact_way(config_id) if not status: myLogger.error('Error in fetching the info of the contactme[{0}]: {1}'.format(config_id, res.get('errmsg'))) else: a_contactme.qr_code = res.get('contact_way').get('qr_code', '') a_contactme.save() return a_contactme
def update(self, instance, validated_data): try: myapp = CorpApp.objects.get(corp=instance.corp, agent_id=AGENT_ID) except CorpApp.DoesNotExist: raise serializers.ValidationError('APP信息获取失败') remark = validated_data.get('remark', instance.remark) skip_verify = validated_data.get('skip_verify', instance.skip_verify) style = validated_data.get('style', instance.style) state = validated_data.get('state', instance.state) user = validated_data.get('user', instance.user) party = validated_data.get('party', instance.party) tags = validated_data.get('tags', instance.tags) welcome_code = validated_data.get('welcome_code', instance.welcome_code) wechat = WorkWechat(myapp) status, res = wechat.update_contact_way(instance.config_id, remark=remark, skip_verify=skip_verify, style=style, state=state, user=user, party=party) if not status: raise serializers.ValidationError(res.get("errmsg")) instance.remark = remark instance.skip_verify = skip_verify instance.style = style instance.state = state instance.user = user instance.party = party instance.tags = tags instance.welcome_code = welcome_code status, res = wechat.get_contact_way(instance.config_id) if not status: myLogger.error('Error in fetching the info of the contactme[{0}]: {1}'.format(instance.config_id, res.get('errmsg'))) else: instance.qr_code = res.get('contact_way').get('qr_code', '') instance.save() return instance
def sync(self, request): result = {'result': 'FAIL', 'message': '', 'code': 20000} corpid = request.data.get('corpid') try: corp = Corporation.objects.get(id=corpid) except Corporation.DoesNotExist: myLogger.error('公司[{0}]不存在'.format(corpid)) result['message'] = '公司[{0}]不存在'.format(corpid) return Response(result) try: myapp = CorpApp.objects.get(corp=corp, agent_id='crm') except CorpApp.DoesNotExist: myLogger.error('应用获取失败') result['message'] = '应用获取失败' return Response(result) wechat = WorkWechat(myapp) status, res = wechat.get_corp_tag_list() if not status: result['message'] = res.get('errmsg') return Response(result) tag_groups = res.get('tag_group') for g in tag_groups: taggroup, created = TagGroup.objects.get_or_create( corp=corp, groupname=g.get('group_name')) taggroup.groupid = g.get('group_id') taggroup.create_time = g.get('create_time') taggroup.order = g.get('order') taggroup.save() tags = g.get('tag') for t in tags: tag, created = Tag.objects.get_or_create(taggroup=taggroup, tagname=t.get('name')) tag.tagid = t.get('id') tag.create_time = t.get('create_time') tag.order = t.get('order') tag.save() result['result'] = 'OK' return Response(result)
def mark_tag(self, request, pk=None): result = {'result': 'FAIL', 'message': '', 'code': 20000} instance = self.get_object() try: myapp = CorpApp.objects.get(corp=instance.member.corp, agent_id=AGENT_ID) except CorpApp.DoesNotExist: result['message'] = '应用获取失败' return Response(result) tags = request.data.get('tags', []) isadd = request.data.get('isadd', '0') wechat = WorkWechat(myapp) if isadd == '0': status, res = wechat.mark_tag(instance.member.userid, instance.customer.external_userid, remove_tag=tags) else: status, res = wechat.mark_tag(instance.member.userid, instance.customer.external_userid, add_tag=tags) if not status: result['message'] = res.get('errmsg') return Response(result) status, res = wechat.get_customer_detail( instance.customer.external_userid) if not status: result['message'] = res.get('errmsg') return Response(result) follow_user_li = res.get('follow_user') for f in follow_user_li: if f.get('userid') == instance.member.userid: instance.tags = json.dumps(f.get('tags')) instance.save() result['result'] = 'OK' return Response(result)
def perform_destroy(self, instance): try: myapp = CorpApp.objects.get(corp=instance.corp, agent_id=AGENT_ID) except CorpApp.DoesNotExist: myLogger.debug('Failed to find the app') return status, res = WorkWechat(myapp).delete_tag(instance.tagid) if not status: myLogger.debug(res.get('errmsg')) return else: myLogger.debug('Successfully deleted the tag: [{0}, {1}]'.format( instance.tagname, instance.tagid)) instance.delete()
def perform_destroy(self, instance): try: myapp = CorpApp.objects.get(corp=instance.corp, agent_id='contact') except CorpApp.DoesNotExist: myLogger.debug('Failed to delete the department: [{0}, {1}]'.format(instance.name, instance.department_id)) return status, res = WorkWechat(myapp).delete_department(instance.department_id) if not status: myLogger.debug(res.get('errmsg')) return else: myLogger.debug('Successfully deleted the department: [{0}, {1}]'.format( instance.name, instance.department_id)) instance.delete()
def update(self, instance, validated_data): corp = validated_data.get('corp') try: myapp = CorpApp.objects.get(corp=corp, agent_id=AGENT_ID) except CorpApp.DoesNotExist: raise serializers.ValidationError('APP信息获取失败') tagname = validated_data.get('tagname', instance.tagname) status, res = WorkWechat(myapp).update_tag(instance.tagid, tagname) if not status: raise serializers.ValidationError(res.get("errmsg")) instance.tagname = tagname instance.save() return instance
def perform_destroy(self, instance): try: myapp = CorpApp.objects.get(corp=instance.corp, agent_id=AGENT_ID) except CorpApp.DoesNotExist: myLogger.debug('Failed to delete the contactme: [{0}]'.format( instance.config_id)) return status, res = WorkWechat(myapp).del_contact_way(instance.config_id) if not status: myLogger.error(res.get('errmsg')) raise ValidationError(res.get('errmsg')) else: myLogger.debug('Successfully deleted the contactme: [{0}]'.format( instance.config_ids)) instance.delete()
def sync_members(self, request): result = {'result': 'FAIL', 'message': ''} corpid = request.data.get('corpid') try: corp = Corporation.objects.get(id=corpid) except Corporation.DoesNotExist: myLogger.error('公司[{0}]不存在'.format(corpid)) result['message'] = '公司[{0}]不存在'.format(corpid) return Response(result) try: contactapp = CorpApp.objects.get(corp=corp, agent_id='contact') except CorpApp.DoesNotExist: myLogger.error('通讯录应用获取失败') result['message'] = '通讯录应用获取失败' return Response(result) status, res = WorkWechat(contactapp).get_users_in_department_detail(request.data.get('departmentid'), fetch_child=1) if not status: result['message'] = res.get('errmsg') return Response(result) for u in res.get('userlist'): myLogger.debug(u) myLogger.debug(type(u)) m, created = Member.objects.get_or_create(corp=corp, userid=u.get('userid')) m.naruto = uuid.uuid3(uuid.NAMESPACE_URL, m.userid) m.name = u.get('name') m.position = u.get('position') m.mobile = u.get('mobile') m.gender = u.get('gender') m.email = u.get('email') m.avatar = u.get('avatar') m.status = u.get('status') m.enable = u.get('enable') m.telephone = u.get('telephone') m.qr_code = u.get('qr_code') m.alias = u.get('alias') m.thumb_avatar = u.get('thumb_avatar') m.save() result['result'] = 'OK' return Response(result)
def update(self, instance, validated_data): corp = instance.taggroup.corp try: myapp = CorpApp.objects.get(corp=corp, agent_id='crm') except CorpApp.DoesNotExist: raise serializers.ValidationError('APP信息获取失败') tagname = validated_data.get('tagname', instance.tagname) order = validated_data.get('order', instance.order) status, res = WorkWechat(myapp).update_corp_tag(instance.tagid, tagname, order) if not status: raise serializers.ValidationError(res.get("errmsg")) instance.tagname = tagname instance.order = order instance.save() return instance
def create(self, validated_data): corp = validated_data.get('corp') try: myapp = CorpApp.objects.get(corp=corp, agent_id=AGENT_ID) except CorpApp.DoesNotExist: raise serializers.ValidationError('APP信息获取失败') tagname = validated_data.get('tagname') status, res = WorkWechat(myapp).create_tag(tagname) if not status: raise serializers.ValidationError(res.get("errmsg")) myLogger.info('Successfully created the tag: {0}'.format( validated_data.get('tagname'))) tagid = res.get('tagid') tag = Tag(corp=corp, tagname=validated_data.get('tagname'), tagid=tagid) tag.save() return tag
def create(self, validated_data): corpid = validated_data.get('corpid', 1) try: corp = Corporation.objects.get(id=corpid) except Corporation.DoesNotExist: raise serializers.ValidationError('企业{0}信息获取失败'.format(corpid)) try: myapp = CorpApp.objects.get(corp=corp, agent_id='crm') except CorpApp.DoesNotExist: raise serializers.ValidationError('APP信息获取失败') group_name = validated_data.get('group_name') tagname = validated_data.get('tagname') status, res = WorkWechat(myapp).create_corp_tag(group_name=group_name, tagname_li=[tagname]) if not status: myLogger.error(res.get('errmsg')) raise serializers.ValidationError(res.get("errmsg")) myLogger.info('Successfully created the tag: {0} under group: {1}'.format(tagname, group_name)) group_res = res.get('tag_group') taggroup, created = TagGroup.objects.get_or_create(corp=corp, groupname=group_name) if created: taggroup.groupid = group_res.get('group_id') taggroup.create_time = group_res.get('create_time') taggroup.order = group_res.get('order') taggroup.save() created_tag = group_res.get('tag')[0] tag, created = Tag.objects.get_or_create(taggroup=taggroup, tagname=tagname) tag.tagid = created_tag.get('id') tag.create_time = created_tag.get('create_time') tag.order = created_tag.get('order') tag.save() return tag
def post(self, request): sToken = "mLOLPDZdSVqAMCxFEFu7DRBeU7HK" sEncodingAESKey = "GrVwDhSRfY4k2tjfVwcmjd3aqcAawbNsHqVYk3MQeNM" sCorpID = "wwcfaf880742304045" corp = 1 wechat = None try: myapp = CorpApp.objects.get(corp=corp, agent_id='crm') wechat = WorkWechat(myapp) except CorpApp.DoesNotExist: myLogger.error( 'Corp:[{0}], Agent:[crm] does NOT exist'.format(corp)) wxcpt = WXBizMsgCrypt(sToken, sEncodingAESKey, sCorpID) params = request.GET sReqMsgSig = params.get('msg_signature') sReqTimeStamp = params.get('timestamp') sReqNonce = params.get('nonce') myLogger.debug('{0}, {1}, {2}'.format(sReqMsgSig, sReqTimeStamp, sReqNonce)) myLogger.debug('body:{0}'.format(request.body)) sReqData = request.body ret, sMsg = wxcpt.DecryptMsg(sReqData, sReqMsgSig, sReqTimeStamp, sReqNonce) if ret: myLogger.error("ERR: DecryptMsg ret: {0}".format(ret)) return HttpResponse('ERR: VerifyURL ret: {0}'.format(ret)) myLogger.debug(sMsg) # 解密成功,sMsg即为xml格式的明文 # TODO: 对明文的处理 # For example: xml_tree = ET.fromstring(sMsg) event = xml_tree.find('Event').text changeType = xml_tree.find('ChangeType').text myLogger.debug('Event: [{0}], type:[{1}]'.format(event, changeType)) if event == 'change_external_contact': if xml_tree.find('ChangeType').text == 'add_external_contact': userid = xml_tree.find('UserID').text externaluserid = xml_tree.find('ExternalUserID').text state = xml_tree.find('State').text welcomecode = xml_tree.find('WelcomeCode').text myLogger.debug('{0}, {1}, {2}, {3}'.format( userid, externaluserid, state, welcomecode)) contactme = ContactMe.objects.filter(state=state) if contactme.count() == 0: return HttpResponse('OK') # Set tags status, res = wechat.mark_tag(userid, externaluserid, add_tag=contactme[0].tags) if not status: myLogger.error(res.get('errmsg')) # Send Welcome welcome_msg = contactme[0].welcome_code welcome_msg['welcome_code'] = welcomecode myLogger.debug(welcome_msg) status, res = wechat.send_welcome_msg(welcome_msg) if not status: myLogger.error(res.get('errmsg')) return HttpResponse('OK')
def sync(self, request): result = {'result': 'FAIL', 'message': '', 'code': 20000} corpid = request.data.get('corpid') try: corp = Corporation.objects.get(id=corpid) except Corporation.DoesNotExist: myLogger.error('公司[{0}]不存在'.format(corpid)) result['message'] = '公司[{0}]不存在'.format(corpid) return Response(result) try: myapp = CorpApp.objects.get(corp=corp, agent_id=AGENT_ID) except CorpApp.DoesNotExist: myLogger.error('应用获取失败') result['message'] = '应用获取失败' return Response(result) wechat = WorkWechat(myapp) status, res = wechat.get_follow_user_list() if not status: result['message'] = res.get('errmsg') return Response(result) follow_user = res.get('follow_user') customer_li = [] for user in follow_user: status, res = wechat.get_customer_list(user) if status: customer_li.extend(res.get('external_userid')) else: myLogger.error( 'Failed to get the customer list for user: {0}'.format( user)) for c in list(set(customer_li)): status, res = wechat.get_customer_detail(c) myLogger.debug(res) a_customer, created = Customer.objects.get_or_create( corp=corp, external_userid=c) customer_info = res.get('external_contact') a_customer.name = customer_info.get('name') a_customer.type = customer_info.get('type', 1) a_customer.avatar = customer_info.get('avatar') a_customer.gender = customer_info.get('gender') a_customer.save() # Setup the bounding follow_user_li = res.get('follow_user') for f in follow_user_li: myLogger.debug('remark info:{0}'.format(f)) try: a_member = Member.objects.get(corp=corp, userid=f.get('userid')) cfurel, created = CustomerFollowUserRelationship.objects.get_or_create( member=a_member, customer=a_customer) cfurel.remark = f.get('remark') cfurel.description = f.get('description') cfurel.createtime = f.get('createtime') cfurel.remark_corp_name = f.get('remark_corp_name', '') cfurel.add_way = f.get('add_way', 0) cfurel.remark_mobiles = json.dumps( f.get('remark_mobiles')).encode('utf-8').decode( 'unicode_escape') cfurel.tags = json.dumps( f.get('tags')).encode('utf-8').decode('unicode_escape') cfurel.save() except Member.DoesNotExist: myLogger.error('成员{0}不存在'.format(f.get('userid'))) result['result'] = 'OK' return Response(result)
import os import sys import mimetypes from pathlib import Path os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.local") import django django.setup() from workwechat_assist.utils.workwechat_sdk import WorkWechat from workwechat_assist.corporation.models import Corporation, CorpApp, Department, Member, \ DepartmentMemberRelationShip, Tag if __name__ == '__main__': corp = Corporation.objects.get(id=1) #app = CorpApp.objects.get(corp=corp, agent_id='crm') app = CorpApp.objects.get(id=1) w = WorkWechat(app) #status, res = w.get_follow_user_list() #status, res = w.get_customer_list('YaoQiuJie') #status, res = w.get_customer_detail('wmb82tCgAAgT9Vbtc3GSpJMrQ2r5Ga3Q') #status, res = w.get_corp_tag_list() #status, res = w.create_corp_tag('北京展会', ['周一', '周二']) #status, res = w.delete_corp_tag(['etb82tCgAiwfsRk1ro4cZMMKWkAA', ]) #status, res = w.get_groupchat_detail('wrb82tCgAAG_wMhrloPU4wkfcq92X7UQ') #status, res = w.send_msg_to_groupchat('YaoQiuJie', msg_type='text', content='Greetings from Django') #status, res = w.send_msg_to_multiuser(external_userid_li=['wmb82tCgAAsSbiFIIYcO_T-_ZVi3T4vw',], msg_type='text', content='Greetings from Django') #status, res = w.get_group_msg_result('msgb82tCgAAgrXmwKrDqNIeY8QGlM5HNA') #status, res = w.get_contact_way("8ce274acc7e3592307bd6c9403a4b740") status, res = w.get_contact_way("8ce274acc7e3592307bd6c9403a4b740") #status, res = w.get_unassigned_list()
def work_wx_login(request): result = {'result': 'FAIL', 'msg': '', 'code': 20000} code = request.data.get('code', 'CODE') state = request.data.get('state', 'STATE') myLogger.info('code:{0}, state:{1}'.format(code, state)) try: corp = Corporation.objects.get(id=1) except Corporation.DoesNotExist: myLogger.error('公司不存在') result['message'] = '公司不存在' return Response(result) try: myapp = CorpApp.objects.get(corp=corp, agent_id=AGENT_ID) except CorpApp.DoesNotExist: myLogger.error('应用获取失败') result['message'] = '应用获取失败' return Response(result) wechat = WorkWechat(myapp) sts, res = wechat.get_userid(code) if not sts: result['message'] = res.get('errmsg') return Response(result) myLogger.debug(res) userid = res.get('UserId') sts, res = wechat.get_user(userid) if not sts: result['message'] = res.get('errmsg') return Response(result) myLogger.debug(res) # The account is not in active state if res.get('status') != 1: result['message'] = 'account[{0}] is not in active state'.format( res.get('userid')) return Response(result) user, created = User.objects.get_or_create(username=res.get('userid')) if created: user.name = res.get('name') user.mobile = res.get('mobile') user.gender = res.get('gender') user.avatarUrl = res.get('avatar') user.email = res.get('email') user.is_staff = True user.save() payload = jwt_payload_handler(user) result['token'] = jwt_encode_handler(payload) result['id'] = user.id result['name'] = user.name result['username'] = user.username result['mobile'] = user.mobile result['email'] = user.email result['roles'] = 'admin' #TODO result['nickName'] = user.nickName result['avatar'] = res.get('thumb_avatar') result['avatarUrl'] = user.avatarUrl result['result'] = 'OK' return Response(result, status=status.HTTP_200_OK)