Exemplo n.º 1
0
    def admin_required(cls):
        admin_id = get_jwt_identity()

        if AdminModel.objects(id=admin_id).first() is None:
            abort(403)

        return admin_id
Exemplo n.º 2
0
    def post(self):
        """
        관리자 양식장 정보 작성
        """
        payload = request.json

        farm_name = payload['farm_name']
        farm_phone_num = payload['farm_phone_num']
        farm_address = payload['farm_address']
        details = payload['details']

        rooms = payload['rooms']

        admin = AdminModel.objects(id=get_jwt_identity()).first()

        minifarms = [MiniFarmModel(**data, admin=admin) for data in rooms]

        try:
            FarmModel(farm_name=farm_name,
                      admin=admin,
                      farm_phone_number=farm_phone_num,
                      farm_address=farm_address,
                      farm_details=details,
                      mini_farms=minifarms).save()
        except TypeError:
            abort(406)

        return '', 201
Exemplo n.º 3
0
    def validate_adminId(self, value):
        try:
            adminId = ObjectId(value.data)
        except:
            raise ValueError('检验管理员信息失败')

        admin = AdminModel.objects(id=adminId).first()
        if not admin:
            raise ValueError('检验管理员信息失败')
Exemplo n.º 4
0
 def validate_password(self, value):
   account = self.account.data
   password = value.data
   admin = AdminModel.objects(account=account).first()
   if not admin:
     raise FormValidateError(msg='用户名不存在')
   if check_password_hash(admin['password'], password) == False:
     raise FormValidateError(msg='密码不正确')
   self.userInfo = {
     "id": str(admin['id']),
     'name': admin['name'],
     "is_admin": True
   }
Exemplo n.º 5
0
    def get(self):
        """
        관리자 양식장 정보 조회
        """
        admin = AdminModel.objects(id=get_jwt_identity()).first()
        farm = FarmModel.objects(farm_hostname=admin.name).first()

        return self.unicode_safe_json_dumps(
            [{
                'room_cost': data.farm_cost,
                'room_fish_max': data.farm_fish_max,
                'room_number': data.farm_number,
                'room_temperature': data.temperature
            } for data in farm.mini_farms],
            200) if admin or farm else abort(406)
Exemplo n.º 6
0
    def get(self):
        """
        유저가 보낸 신청을 불러오는 API
        """
        farm = FarmModel.objects(admin=AdminModel.objects(id=get_jwt_identity()).first()).first()
        apply = ApplyModel.objects(farm=farm).all()

        return self.unicode_safe_json_dumps([{
            'farm_name': apply.farm.farm_name,
            'user_phone_number': apply.user.phone_number,
            'applyDate': apply.applyDate,
            'message': apply.message,
            'roominfo': [{
                'itemNum': apply.roominfo.itemNum,
                'itemName': apply.roominfo.itemName,
                'money': apply.money
            }]
        } for apply in apply], 200)
Exemplo n.º 7
0
    def post(self):
        """
        관리자 로그인
        """
        payload = request.json

        admin_id = payload['id']
        admin_pw = payload['pw']

        admin = AdminModel.objects(id=admin_id).first()

        if admin is None:
            abort(406)

        return {
            'access_token': create_access_token(identity=admin_id),
            'refresh_token': create_refresh_token(identity=admin_id)
        }, 200 if check_password_hash(admin.pw, admin_pw) else abort(406)
Exemplo n.º 8
0
    def post(self, num):
        """
        관리자 내 양식장 상황 작성
        """
        payload = request.json

        admin = AdminModel.objects(id=get_jwt_identity()).first()
        farm = FarmModel.objects(farm_hostname=admin.name).first()

        mini_farm = farm.mini_farms[num - 1]

        mini_farm.update(
            temperature=payload['temperature'],
            farm_cost=payload['cost'],
            fish_kind=payload['fish_kind'],
            # payload['fish_kind'] = [{
            #   'kind': 'String'
            #   'amount': 'Int'
            # }
            details=payload['details']).save()

        return '', 201
Exemplo n.º 9
0
    def post(self):
        """
        관리자 회원가입
        """
        admin_id = request.json['id']
        admin_pw = request.json['pw']
        admin_name = request.json['name']
        admin_phone_number = request.json['phone_number']

        if AdminModel.objects(id=admin_id).first():
            abort(409)

        admin_hashed_pw = generate_password_hash(admin_pw)

        AdminModel(
            id=admin_id,
            pw=admin_hashed_pw,
            name=admin_name,
            phone_number=admin_phone_number
        ).save()

        return '', 201
Exemplo n.º 10
0
    def get(self, num):
        admin = AdminModel.objects(id=get_jwt_identity()).first()
        apply = ApplyModel.objects(farm=FarmModel.objects(
            admin=admin).first()).first()
        minifarm = apply.farm.mini_farms[num - 1]

        return self.unicode_safe_json_dumps({
            'name':
            apply.user.name,
            'phone_number':
            apply.user.phone_number,
            'period':
            apply.period,
            'temperature':
            minifarm.temperature,
            'farm_cost':
            minifarm.farm_cost,
            'fish_kind': [{
                'kind': data.kind,
                'amount': data.amount
            } for data in minifarm.fish_kind],
            'details':
            minifarm.details
        })