def set_oauth_user(user_data, service, ui_locales) -> Dict[str, Any]: """ :param user_data: :param service: :param ui_locales: :return: A Dictionary with a status an error and an user object """ _tn = Translator(ui_locales) db_group = DBDiscussionSession.query(Group).filter_by(name='users').first() if not db_group: LOG.debug( "Error occured: No db_group for users during `set_oauth_user`") return {'error': _tn.get(_.errorTryLateOrContant)} ret_dict = user.set_new_oauth_user(user_data, user_data['id'], service, _tn) return { 'status': ret_dict['success'] if ret_dict['success'] else ret_dict['error'], 'error': ret_dict.get('error', ''), 'user': ret_dict.get('user') }
def __set_oauth_user(request, user_data, service, ui_locales): """ :param request: :param user_data: :param service: :param ui_locales: :return: """ _tn = Translator(ui_locales) db_group = DBDiscussionSession.query(Group).filter_by(name='users').first() if not db_group: logger('Auth.Login', 'Error occured') return {'error': _tn.get(_.errorTryLateOrContant)} ret_dict = user.set_new_oauth_user(user_data['firstname'], user_data['lastname'], user_data['nickname'], user_data['email'], user_data['gender'], user_data['id'], service, _tn) if ret_dict['success']: url = request.session['oauth_redirect_url'] return __return_success_login(request, False, ret_dict['user'], False, url) else: return {'error': ret_dict['error'], 'success': ret_dict['success']}
def _collection_post(request): result = set_new_oauth_user(request.json_body, request.json_body['id'], request.json_body['service'], Translator(request.json_body['locale'])) if result["success"]: request.response.status = 201 return {"id": result["user"].uid} else: request.response.status = 400 return result["error"]