def put(self, user_id): # 测试通过 """ 对应 /api/users/:user_id -put :param user_id: 将要被更新的用户id :return: 更新对应user_id的用户数据 """ req = request.json user_result = update_user(user_id, User( user_id, req.get('username'), req.get('name'), req.get('password'), req.get('email'), req.get('day_of_birth'), req.get('gender'), req.get('academy'), req.get('major'), req.get('bio'), req.get('phone'), req.get('year_of_enrollment') )) if user_result is not None: user_dto = add_clubids_and_requestids_to_dto(user_result) res = user_dto else: res = {'message': 'It\'s not exist that user you want update.'} return obj2json(res)
def get(self, club_id: str) -> 'json': """对应 /api/clubs/<string:club_id>. 获取特定的Club. """ club = club_dao.get_club_by_id(club_id) dto = convert_from_model_to_dto(club) return util.obj2json(dto)
def get(self): # 测试通过 ''' 根据是否有包含username的query_string判断返回一个用户or所有用户 :return: 一个username相关用户or所有用户 ''' if request.query_string: query_str = str(request.query_string, encoding='utf-8') query_key_value = query_str.split('&') query_dict = {} for key_value in query_key_value: key, value = key_value.split('=') query_dict[key] = value if 'username' in query_dict.keys(): user_result = get_user_by_username(query_dict['username']) if user_result is not None: user_dto = add_clubids_and_requestids_to_dto(user_result) res = user_dto else: res = {'message': 'user ' + query_dict['username'] + ' don\'t exist.'} else: res = { 'message': 'query_string don\'t have the "username" property.' } else: users_result = get_users() res = [] for user_result in users_result: user_dto = add_clubids_and_requestids_to_dto(user_result) res.append(user_dto) return obj2json(res)
def post(self): # 测试通过 """对应 /api/users -post :param req: 添加的用户数据 :return: 添加后的用户数据包括id """ req = request.json user_result = add_user( User(generate_uuid(), req.get('username'), req.get('name'), req.get('password'), req.get('email'), req.get('day_of_birth'), req.get('gender'), req.get('academy'), req.get('major'), req.get('bio'), req.get('phone'), req.get('year_of_enrollment'))) user_dto = UsersDto(user_id=user_result.user_id, username=user_result.username, name=user_result.name, email=user_result.email, day_of_birth=user_result.day_of_birth, gender=user_result.gender, academy=user_result.academy, major=user_result.major, bio=user_result.bio, phone=user_result.phone, year_of_enrollment=user_result.year_of_enrollment, club_ids=[], request_ids=[]) res = user_dto # res = flask.make_response(res) # res.headers['Access-Control-Allow-Origin'] = "*" # res.headers['Access-Control-Allow-Headers'] = "content-type, x-auth-token" # res.headers['Access-Control-Allow-Methods'] = "GET, PUT, POST, DELETE, OPTIONS, HEAD" return obj2json(res)
def get(self) -> 'json': """对应 /api/clubs. 获取所有Club. """ clubs = club_dao.get_all_clubs() dtos = [] for club in clubs: dtos.append(convert_from_model_to_dto(club)) return util.obj2json(dtos)
def post(self) -> 'json': """对应 /api/clubs. 新增一个Club. """ club = convert_from_request_to_model(request.data.decode("utf-8")) club_dao.add_club(club) club = club_dao.get_club_by_id(club.club_id) dto = convert_from_model_to_dto(club) return util.obj2json(dto)
def delete(self, identifier) -> 'json': """删除一张图片. 对应URL为: /api/images/<string: identifier> :return: json """ image = image_dao.get_image_by_id(identifier) image_dao.delete_image_by_id(identifier) dto = convert_from_model_to_image_dto(image) return util.obj2json(dto)
def put(self, club_id: str) -> 'json': """对应 /api/clubs/<string:club_id>. 修改特定的Club. """ club = convert_from_request_to_model(request.data.decode("utf-8"), club_id) print(club.club_name) club_dao.update_club(club) club = club_dao.get_club_by_id(club_id) dto = convert_from_model_to_dto(club) return util.obj2json(dto)
def get(self, user_id): # 测试通过 """ /api/users/:user_id -get 根据id获取用户数据 :param user_id: 用户id :return: 该id的用户数据 """ user = get_user_by_id(user_id) if user is None: res = {'message': 'user don\'t exist.'} else: user_result = user user_dto = add_clubids_and_requestids_to_dto(user_result) res = user_dto return obj2json(res)
def get(self): # 测试通过 requests_result = get_requests() request_dtos = [] for a_request in requests_result: request_dto = RequestDto( request_id=a_request.request_id, user_id=a_request.user_id, club_id=a_request.club_id, time=a_request.time, extra=a_request.extra, is_read=a_request.is_read, ) request_dtos.append(request_dto) res = request_dtos return obj2json(res)
def get(self, request_id): # 测试通过 request_result = get_request_by_id(request_id) if request_result is None: res = {'message': 'request ' + request_id + ' is not exist.'} else: request_dto = RequestDto( request_id=request_result.request_id, user_id=request_result.user_id, club_id=request_result.club_id, time=request_result.time, extra=request_result.extra, is_read=request_result.is_read, ) res = request_dto return obj2json(res)
def post(self, identifier) -> 'json': """新增一张图片. 对应URL为: /api/images/<string: identifier> :return: json """ parser = reqparse.RequestParser() parser.add_argument('image', type=werkzeug.datastructures.FileStorage, location='files', required=True, help="图片不能为空") args = parser.parse_args() file = args.get('image') image = build_image(identifier, file.filename) file.save(image.image_path) print(file.__dict__) image_dao.add_image(image) image = image_dao.get_image_by_id(image.image_id) dto = convert_from_model_to_image_dto(image) return util.obj2json(dto)
def delete(self, request_id): # 测试通过 requests_result = get_requests() exist_the_request = False for a_request in requests_result: if a_request.request_id == request_id: exist_the_request = True break if exist_the_request: request_result = delete_request_by_id(request_id) request_dto = RequestDto( request_id=request_result.request_id, user_id=request_result.user_id, club_id=request_result.club_id, time=request_result.time, extra=request_result.extra, is_read=request_result.is_read, ) res = request_dto else: res = {'message': 'the request ' + request_id + ' not exist.'} return obj2json(res)
def post(self): # 测试通过 req = request.json request_result = add_request(Request( request_id=generate_uuid(), user_id=req.get('user_id'), club_id=req.get('club_id'), # time=time.time(), time=datetime.datetime.now(), extra=req.get('extra'), is_read=False )) request_dto = RequestDto( request_id=request_result.request_id, user_id=request_result.user_id, club_id=request_result.club_id, time=request_result.time, extra=request_result.extra, is_read=request_result.is_read, ) res = request_dto return obj2json(res)
def post(self): # 测试通过 '''对应 /api/users -post :param req: 添加的用户数据 :return: 添加后的用户数据包括id ''' req = request.json user_result = add_user(User( generate_uuid(), req.get('username'), req.get('name'), req.get('password'), req.get('email'), req.get('day_of_birth'), req.get('gender'), req.get('academy'), req.get('major'), req.get('bio'), req.get('phone'), req.get('year_of_enrollment') )) user_dto = UsersDto( user_id=user_result.user_id, username=user_result.username, name=user_result.name, email=user_result.email, day_of_birth=user_result.day_of_birth, gender=user_result.gender, academy=user_result.academy, major=user_result.major, bio=user_result.bio, phone=user_result.phone, year_of_enrollment=user_result.year_of_enrollment, club_ids=[], request_ids=[] ) res = user_dto return obj2json(res)
class UsersApi(Resource): def post(self): # 测试通过 '''对应 /api/users -post :param req: 添加的用户数据 :return: 添加后的用户数据包括id ''' req = request.json user_result = add_user(User( generate_uuid(), req.get('username'), req.get('name'), req.get('password'), req.get('email'), req.get('day_of_birth'), req.get('gender'), req.get('academy'), req.get('major'), req.get('bio'), req.get('phone'), req.get('year_of_enrollment') )) user_dto = UsersDto( user_id=user_result.user_id, username=user_result.username, name=user_result.name, email=user_result.email, day_of_birth=user_result.day_of_birth, gender=user_result.gender, academy=user_result.academy, major=user_result.major, bio=user_result.bio, phone=user_result.phone, year_of_enrollment=user_result.year_of_enrollment, club_ids=[], request_ids=[] ) res = user_dto return obj2json(res) def get(self): # 测试通过 ''' 根据是否有包含username的query_string判断返回一个用户or所有用户 :return: 一个username相关用户or所有用户 ''' if request.query_string: query_str = str(request.query_string, encoding='utf-8') query_key_value = query_str.split('&') query_dict = {} for key_value in query_key_value: key, value = key_value.split('=') query_dict[key] = value if 'username' in query_dict.keys(): user_result = get_user_by_username(query_dict['username']) if user_result is not None: user_dto = add_clubids_and_requestids_to_dto(user_result) res = user_dto else: res = {'message': 'user ' + query_dict['username'] + ' don\'t exist.'} """ @admin_required @login_required def get(self, rate): return {'hello': rate} def put(self, rate): return {'put': 'successful'} def post(self, rate): return {'post': 'successful'} def delete(self, rate): return {'delete': 'successful'} else: res = { 'message': 'query_string don\'t have the "username" property.' } else: users_result = get_users() res = [] for user_result in users_result: user_dto = add_clubids_and_requestids_to_dto(user_result) res.append(user_dto) return obj2json(res) class UsersApiById(Resource): def put(self, user_id): # 测试通过 """ 对应 /api/users/:user_id -put :param user_id: 将要被更新的用户id :return: 更新对应user_id的用户数据 """ req = request.json user_result = update_user(user_id, User( user_id, req.get('username'), req.get('name'), req.get('password'), req.get('email'), req.get('day_of_birth'), req.get('gender'), req.get('academy'), req.get('major'), req.get('bio'), req.get('phone'), req.get('year_of_enrollment') )) if user_result is not None: user_dto = add_clubids_and_requestids_to_dto(user_result) res = user_dto else: res = {'message': 'It\'s not exist that user you want update.'} return obj2json(res)
from app.api import BaseDto from app.api.club_api import ClubDto from app.util import obj2json class Student(BaseDto): """简单的Dto类转JSON示例 """ def __init__(self): self.name = '张三' self.age = 1 self.hobby = ['羽毛球', '游泳'] student = Student() print(obj2json(student)) print(obj2json({'name': [1, 2, 3]})) club = ClubDto() club.name = "1" club.date = datetime.now().date() club.tags = {1, 2, 3} print(obj2json(datetime.now())) se = {1, 2} print(obj2json(se)) print(obj2json(club)) print(obj2json(club))