예제 #1
0
def test_create_query_delete_user(db):
    ok = graphql.execute('''
    mutation {
        createUser(userData: {email: "*****@*****.**", name: "123", password: "******", role: "Nurse"}){
            ok
        }
    }''').data['createUser']['ok']
    assert ok == True

    name = graphql.execute('''
    query {
      user(email: "*****@*****.**") {
            name
        }
    }
    ''').data["user"]["name"]

    assert name == "123"

    ok = graphql.execute('''
    mutation {
        deleteUser(email: "*****@*****.**"){
            ok
        }
    }
    ''').data['deleteUser']['ok']
    assert ok == True
예제 #2
0
파일: index.py 프로젝트: NTUT-108-SE/SE-CMS
def change_password():
    form = json.loads(list(request.form.keys())[0])
    old_password = form.get('old_password')
    password = form.get('password')

    if password == None or old_password == None:
        return make_response(jsonify({'ok': False}), 400)

    ok = graphql.execute('''
        query {
            login(email: "%s", password: "******"){
                ok
            }
        }
        ''' % (current_user.get_email(), old_password)).data['login']['ok']

    if ok is False:
        return make_response(jsonify({'ok': False}), 400)

    ok = graphql.execute('''
    mutation {
        mutateUser(userData: {id: "%s", password: "******"}){
            ok
        }
    }
    ''' % (current_user.get_id(), password)).data['mutateUser']['ok']

    return make_response(jsonify({'ok': ok}), 200 if ok else 400)
예제 #3
0
def test_delete_user_by_id(db_user):
    id = graphql.execute('''
    query {
        user(email: "*****@*****.**"){
            id
        }
    }''').data['user']['id']

    ok = graphql.execute('''
    mutation {
        deleteUser(id: "%s"){
            ok
        }
    }''' % id).data['deleteUser']['ok']

    assert ok == True

    user = graphql.execute('''
    query {
        user(email: "*****@*****.**"){
            id
        }
    }''').data['user']

    assert user == None
예제 #4
0
def get_all():
    offset = request.args.get('offset', default=0, type=int)
    count = request.args.get('count', default=20, type=int)
    patient_id = request.args.get('patientId', default=None, type=int)

    result = None
    if patient_id == None:
        result = graphql.execute(
            '''
        query {
            healthRecords(offset: %s, count: %s){
                total
                entry{
                    id
                    patientId
                    code
                    medication
                    date
                    identifier
                    name
                }
                offset
                count
            }
        }
        ''' % (offset, count)
        ).data['healthRecords']
    else:
        result = graphql.execute(
            '''
        query {
            healthRecords(offset: %s, count: %s, patientId: %s){
                total
                entry{
                    id
                    patientId
                    code
                    medication
                    date
                    identifier
                    name
                }
                offset
                count
            }
        }
        ''' % (offset, count, patient_id)
        ).data['healthRecords']
    return make_response(jsonify({'ok': True, 'healthrecords': result}), 200)
예제 #5
0
파일: index.py 프로젝트: NTUT-108-SE/SE-CMS
def get(invoice_id):
    isId = True
    try:
        int(invoice_id)
    except Exception:
        isId = False

    invoice = None
    if isId:
        invoice = graphql.execute('''
            query {
                invoice(id: %s) {
                    id
                    date
                    patientId
                    name
                    identifier
                    text
                }
            }
            ''' % invoice_id).data['invoice']

    return make_response(
        jsonify({
            'ok': True if invoice != None else False,
            'invoice': invoice
        }), 200 if invoice != None else 400)
예제 #6
0
def test_create_failed(db):
    ok = graphql.execute('''
    mutation {
        createUser(userData: {email: "*****@*****.**", name: "123", password: "******", role: "Nurse"}){
            ok
        }
    }''').data['createUser']['ok']
    assert ok == True

    ok = graphql.execute('''
    mutation {
        createUser(userData: {email: "*****@*****.**", name: "123", password: "******", role: "Nurse"}){
            ok
        }
    }''').data['createUser']['ok']
    assert ok == False
예제 #7
0
def create():
    form = json.loads(list(request.form.keys())[0])
    patient_id = form.get('patientId')
    code = form.get('code')
    medication = form.get('medication')
    identifier = form.get('identifier')
    name = form.get('name')
    date = datetime.today().strftime('%Y-%m-%d')

    if patient_id is None or code is None or medication is None or identifier is None or name is None:
        return make_response(jsonify({'ok': False}), 400)

    result = graphql.execute(
        '''
    mutation {
        createHealthRecord(healthRecordData: {patientId: %s, code: "%s", medication: "%s", date: "%s", identifier: "%s", name: "%s"}) {
            ok
            healthRecord {
                id
                code
                medication
                patientId
                date
                identifier
                name
            }
        }
    }''' % (patient_id, code, medication, date, identifier, name)
    ).data['createHealthRecord']

    ok = result['ok']
    hr = result['healthRecord']

    return make_response(jsonify({'ok': ok, 'healthRecord': hr}), 200 if ok else 400)
예제 #8
0
def change(healthrecord_id):
    form = json.loads(list(request.form.keys())[0])
    code = form.get('code')
    medication = form.get('medication')
    identifier = form.get('identifier')
    name = form.get('name')

    if code is None or medication is None or identifier is None or name is None:
        return make_response(jsonify({'ok': False}), 400)

    result = graphql.execute(
        '''
    mutation {
        mutateHealthRecord(id: %s,healthRecordData: {code: "%s", medication: "%s", identifier: "%s", name: "%s"}) {
            ok
            healthRecord {
                id
                code
                medication
                patientId
                date
                identifier
                name
            }
        }
    }''' % (healthrecord_id, code, medication, identifier, name)
    ).data['mutateHealthRecord']

    ok = result['ok']
    hr = result['healthRecord']

    return make_response(jsonify({'ok': ok, 'healthRecord': hr}), 200 if ok else 400)
예제 #9
0
파일: index.py 프로젝트: NTUT-108-SE/SE-CMS
def change_announcement(announcement_id):
    form = json.loads(list(request.form.keys())[0])
    title = form.get('title')
    context = form.get('context')
    author = form.get('author')
    date = form.get('date')
    result = graphql.execute('''
        mutation {
        mutateAnnouncement(announcementData: {
            title: "%s"
            context: "%s"
            author: "%s"
            date: "%s"}, id:"%s"){
                announcement {
                    id
                    title
                    context
                    author
                    date
                }
                ok
            }
        }
        ''' % (title, context, author, date,
               announcement_id)).data['mutateAnnouncement']

    ok = result['ok']

    return make_response(
        jsonify({
            'ok': ok,
            'announcement': result['announcement']
        }), 200 if ok else 400)
예제 #10
0
파일: index.py 프로젝트: NTUT-108-SE/SE-CMS
def delete(medication_id):
    ok = graphql.execute('''
    mutation {
        deleteMedication(id: %s) {
            ok
        }
    }''' % medication_id).data['deleteMedication']['ok']
    return make_response(jsonify({'ok': ok}), 200 if ok else 400)
예제 #11
0
def test_query_user_by_id(db_user):
    id = graphql.execute('''
    query {
        user(email: "*****@*****.**"){
            id
        }
    }''').data['user']['id']

    user = graphql.execute('''
    query {
      user(id: "%s") {
            name
        }
    }
    ''' % id).data['user']

    assert user == {"name": "User1"}
예제 #12
0
def get(patient_id):
    isId = True
    try:
        int(patient_id)
    except Exception:
        isId = False

    patient = None
    if isId:
        patient = graphql.execute('''
            query {
                patient(id: %s) {
                    id
                    identifier
                    address
                    gender
                    family
                    given
                    phone
                    birthDate
                    maritalStatus
                }
            }
            ''' % patient_id).data['patient']
    else:
        patient = graphql.execute('''
            query {
                patient(identifier: "%s") {
                    id
                    identifier
                    address
                    gender
                    family
                    given
                    phone
                    birthDate
                    maritalStatus
                }
            }
            ''' % patient_id).data['patient']

    return make_response(
        jsonify({
            'ok': True if patient != None else False,
            'patient': patient
        }), 200 if patient != None else 400)
예제 #13
0
def test_query_user(db_user):
    user = graphql.execute('''
    query {
      user(email: "*****@*****.**") {
            name
        }
    }
    ''').data['user']
    assert user == {"name": "User1"}
예제 #14
0
def test_query_login(db_user):
    ok = graphql.execute('''
    query {
        login(email: "*****@*****.**", password: "******"){
            ok
        }
    }
    ''').data['login']['ok']
    assert ok == True
예제 #15
0
def test_query_user_not_found(db_user):
    user = graphql.execute('''
    query {
      user(email: "") {
            name
        }
    }
    ''').data['user']
    assert user == None

    user = graphql.execute('''
    query {
      user {
            name
        }
    }
    ''').data['user']
    assert user == None
예제 #16
0
def test_list_user(db_user):
    users = graphql.execute('''
    query {
      users {
            name
        }
    }
    ''').data['users']
    assert users == [{"name": "User1"}, {"name": "User2"}]
예제 #17
0
def test_delete_empty_user(db_user):
    ok = graphql.execute('''
    mutation {
      deleteUser {
            ok
        }
    }
    ''').data['deleteUser']['ok']
    assert ok == False
예제 #18
0
def test_mutate_user_password(db_user):
    result = graphql.execute('''
    mutation {
        mutateUser(userData: {email: "*****@*****.**", password:"******"}){
            ok
        }
    }''').data['mutateUser']
    ok = result['ok']
    assert ok == True
예제 #19
0
def test_failed_query_login(db_user):
    ok = graphql.execute('''
    query {
        login(email: "test@gmail", password: "******"){
            ok
        }
    }
    ''').data['login']['ok']
    assert ok == False
예제 #20
0
파일: index.py 프로젝트: NTUT-108-SE/SE-CMS
def delete_announcement(announcement_id):
    ok = graphql.execute('''
        mutation {
            deleteAnnouncement(id:"%s"){
                ok
                }
            }
        ''' % announcement_id).data['deleteAnnouncement']['ok']

    return make_response(jsonify({'ok': ok}), 200 if ok else 400)
예제 #21
0
파일: index.py 프로젝트: NTUT-108-SE/SE-CMS
def delete(user_id):
    ok = graphql.execute('''
    mutation {
        deleteUser(id: "%s"){
            ok
        }
    }
    ''' % user_id).data['deleteUser']['ok']

    return make_response(jsonify({'ok': ok}), 200 if ok else 400)
예제 #22
0
def delete(healthrecord_id):
    ok = graphql.execute(
        '''
    mutation {
        deleteHealthRecord(id: %s) {
            ok
        }
    }''' % healthrecord_id
    ).data['deleteHealthRecord']['ok']
    return make_response(jsonify({'ok': ok}), 200 if ok else 400)
예제 #23
0
파일: index.py 프로젝트: NTUT-108-SE/SE-CMS
def change():
    form = json.loads(list(request.form.keys())[0])
    images = form.get('images')
    URLs = form.get('URLs')
    title = form.get('title')
    time = form.get('time')
    description = form.get('description')
    our_services = form.get('ourServices')
    doctor_description = form.get('doctorDescription')
    clinic_address = form.get('clinicAddress')
    if images is None or URLs is None or title is None or time is None or description is None or our_services is None or doctor_description is None or clinic_address is None:
        return make_response(
            jsonify({
                'ok': False,
                'result': "Loss some management data"
            }, 400))

    result = graphql.execute(''' 
    mutation{
        mutateManagement(managementData:{
            images: %s,
            URLs: %s,
            title: "%s",
            time: "%s",
            description: "%s",
            ourServices: "%s",
            doctorDescription: "%s",
            clinicAddress: "%s"
        }){
            ok
            management{
                images
                URLs
                title
                time
                description
                ourServices
                doctorDescription
                clinicAddress
            }
        }
    }
    ''' % (str(images).replace('\'', "\""), str(URLs).replace(
        '\'', "\""), title, time, description, our_services,
           doctor_description, clinic_address)).data['mutateManagement']

    ok = result['ok']
    management = result['management']

    return make_response(jsonify({
        'ok': ok,
        'management': management
    }), 200 if ok else 400)
예제 #24
0
def test_failed_mutate_user_role(db_user):
    result = graphql.execute('''
    mutation {
        mutateUser(userData: {email: "*****@*****.**", role:"test"}){
            user {
                role
            }
            ok
        }
    }''').data['mutateUser']
    ok = result['ok']
    assert ok == False
예제 #25
0
def change(patient_id):
    form = json.loads(list(request.form.keys())[0])
    identifier = form.get('identifier')
    address = form.get('address')
    gender = form.get('gender')
    family = form.get('family')
    given = form.get('given')
    phone = form.get('phone')
    birth_date = form.get('birthDate')
    marital_status = form.get('maritalStatus')
    if identifier is None or address is None or gender is None or family is None or given is None or marital_status is None or birth_date is None or phone is None:
        return make_response(
            jsonify({
                'ok': False,
                'result': "Loss some patient data"
            }, 400))

    result = graphql.execute('''
        mutation {
            mutatePatient(id: %s, patientData:{
                identifier: "%s",
                address: "%s",
                gender: "%s",
                family: "%s",
                given: "%s",
                phone: "%s",
                birthDate: "%s",
                maritalStatus: "%s"
            }) {
                ok
                patient{
                    id
                    identifier
                    address
                    gender
                    family
                    given
                    phone
                    birthDate
                    maritalStatus
                }
            }
        }
        ''' % (patient_id, identifier, address, gender, family, given, phone,
               birth_date, marital_status)).data['mutatePatient']

    ok = result['ok']
    patient = result['patient']

    return make_response(jsonify({
        'ok': ok,
        'patient': patient
    }), 200 if ok else 400)
예제 #26
0
파일: index.py 프로젝트: NTUT-108-SE/SE-CMS
def login_index():
    form = json.loads(list(request.form.keys())[0])
    email = form.get('email')
    password = form.get('password')
    if email is None or password is None:
        return make_response(
            jsonify({
                'ok': False,
                'message': "email or password should not be None"
            }), 401)

    ok = graphql.execute('''
    query {
        login(email: "%s", password:"******"){
            ok
        }
    }
    ''' % (email, password)).data['login']['ok']

    if ok != True:
        return make_response(jsonify({
            'ok': ok,
            'message': "vlidate failed."
        }), 401)

    user = User(email=email)
    login_user(user)
    rep_user = graphql.execute('''
        query {
            user(id: "%s") {
                email
                name
                role
                image
                introduction
            }
        }
        ''' % user.get_id()).data['user']
    return make_response(jsonify({'ok': ok, 'user': rep_user}), 200)
예제 #27
0
파일: index.py 프로젝트: NTUT-108-SE/SE-CMS
def get_all_users():
    users = graphql.execute('''
    query {
      users {
            id
            name
            email
            image
            introduction
            role
        }
    }
    ''').data['users']
    return make_response(jsonify({'ok': True, 'users': users}), 200)
예제 #28
0
def test_mutate_user(db_user):
    result = graphql.execute('''
    mutation {
        mutateUser(userData: {email: "*****@*****.**", name: "123"}){
            user {
                name
            }
            ok
        }
    }''').data['mutateUser']
    ok = result['ok']
    assert ok == True
    name = result['user']['name']
    assert name == '123'
예제 #29
0
def test_mutate_user_role(db_user):
    result = graphql.execute('''
    mutation {
        mutateUser(userData: {email: "*****@*****.**", role:"Nurse"}){
            user {
                role
            }
            ok
        }
    }''').data['mutateUser']
    ok = result['ok']
    assert ok == True
    role = result['user']['role']
    assert role == 'Nurse'
예제 #30
0
def delete(patient_id):
    isId = True
    try:
        int(patient_id)
    except Exception:
        isId = False

    ok = False
    if isId:
        ok = graphql.execute('''
            mutation {
                deletePatient(id: %s) {
                    ok
                }
        }''' % patient_id).data['deletePatient']['ok']
    else:
        ok = graphql.execute('''
            mutation {
                deletePatient(identifier: "%s") {
                    ok
                }
        }''' % patient_id).data['deletePatient']['ok']

    return make_response(jsonify({'ok': ok}), 200 if ok else 400)