Esempio n. 1
0
 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)
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)
Esempio n. 4
0
    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)
Esempio n. 5
0
    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)
Esempio n. 6
0
    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)
Esempio n. 7
0
 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)
Esempio n. 8
0
    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)
Esempio n. 9
0
 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)
Esempio n. 10
0
 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)
Esempio n. 11
0
 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)
Esempio n. 12
0
    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)
Esempio n. 13
0
 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)
Esempio n. 14
0
 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)
Esempio n. 15
0
    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)
Esempio n. 16
0
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)
Esempio n. 17
0
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))