Skip to content
This repository has been archived by the owner on Feb 22, 2020. It is now read-only.

form CRUD 구현 #10

Open
kujyp opened this issue Mar 7, 2018 · 1 comment
Open

form CRUD 구현 #10

kujyp opened this issue Mar 7, 2018 · 1 comment

Comments

@kujyp
Copy link
Collaborator

kujyp commented Mar 7, 2018

No description provided.

@kujyp
Copy link
Collaborator Author

kujyp commented Mar 7, 2018

request 예시입니다

{
    'libraryName': '115',
    'libraryLocation': '',
    'managerName': '', 
    'managerEmail': '',
    'managerPhonenumber': '',
    'capacityOfAudiences': '0',
    'facilities': "{
        'facilitiesBeamOrScreen': False,
        'facilitiesSound': False,
        'facilitiesRecord': False,
        'facilitiesPlacard': False,
        'facilitiesSelfPromotion': False
    }",
    'personalInfoAgreement': 'True',
    'noVolunteerAgreement': 'True'
}

임시로 사용했던 flask rest api 서버코드 일부분 입니다.
https://github.com/CodeRecipeJYP/flask-restapi-teamtreehouse/blob/c1b6b823f7b6f136874ccad8f515a30efdccc0dc/resources/forms.py

form_fields = {
    'id': fields.Integer,
    'libraryName': fields.String,
    'libraryLocation': fields.String,
    'managerName': fields.String,
    'managerEmail': fields.String,
    'managerPhonenumber': fields.String,
    'capacityOfAudiences': fields.Integer,
    'facilities': fields.String,
    'requirementsForSpeaker': fields.String,
    'personalInfoAgreement': fields.Boolean,
    'noVolunteerAgreement': fields.Boolean,
    'otherFacilities': fields.String,
}


form_requireds = {
    'libraryName': True,
    'libraryLocation': True,
    'managerName': True,
    'managerEmail': True,
    'managerPhonenumber': True,
    'capacityOfAudiences': True,
    'facilities': True,
    'requirementsForSpeaker': False,
    'personalInfoAgreement': True,
    'noVolunteerAgreement': True,
    'otherFacilities': False,
}

def form_or_404(form_id):
    try:
        form = models.Form.get(models.Form.id == form_id)
    except models.Form.DoesNotExist:
        abort(404)
    else:
        return form


class FormList(Resource):
    def __init__(self):
        self.reqparse = reqparse.RequestParser()
        for propertyName in form_requireds:
            if form_requireds[propertyName]:
                self.reqparse.add_argument(
                    propertyName,
                    required=True,
                    nullable=False,
                    help='No form {} provided'.format(propertyName),
                    location=['form', 'json']
                )

        super().__init__()

    @marshal_with(form_fields)
    def post(self):
        args = self.reqparse.parse_args()
        print("args={}".format(args))
        form = models.Form.create(**args)
        print("form={}".format(form))
        return form

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant