Ejemplo n.º 1
0
def get_affiliations(**kwargs):
    ids = None
    if kwargs.get('affiliationID'):
        ids = [int(i) for i in kwargs.get('affiliationID').split(',')]
    person_first = kwargs.get('firstName')
    person_last = kwargs.get('lastName')
    org_code = kwargs.get('organizationCode')

    Affs = READ.getAffiliations(ids=ids,
                         personfirst=person_first,
                         personlast=person_last,
                         orgcode=org_code)

    Aff_list = []

    for aff in Affs:
        aff_dct = get_vals(aff)

        orgs_dct = None
        if aff.OrganizationObj:
            orgs_dct = get_vals(aff.OrganizationObj)

        aff_dct.update({
            'Person':get_vals(aff.PersonObj),
            'Organization': orgs_dct
        })

        Aff_list.append(
            AffiliationSerializer(aff_dct).data
        )

    return Aff_list
Ejemplo n.º 2
0
def get_affiliations(**kwargs):
    ids = None
    if kwargs.get('affiliationID'):
        ids = [int(i) for i in kwargs.get('affiliationID').split(',')]
    person_first = kwargs.get('firstName')
    person_last = kwargs.get('lastName')
    org_code = kwargs.get('organizationCode')

    Affs = READ.getAffiliations(ids=ids,
                                personfirst=person_first,
                                personlast=person_last,
                                orgcode=org_code)

    Aff_list = []

    for aff in Affs:
        aff_dct = get_vals(aff)

        orgs_dct = None
        if aff.OrganizationObj:
            orgs_dct = get_vals(aff.OrganizationObj)

        aff_dct.update({
            'Person': get_vals(aff.PersonObj),
            'Organization': orgs_dct
        })

        Aff_list.append(AffiliationSerializer(aff_dct).data)

    return Aff_list
Ejemplo n.º 3
0
def get_actions(**kwargs):
    # TODO: Get relationship to affiliations via ActionBy, currently not in API
    ids = kwargs.get('actionID')
    acttype = kwargs.get('actionType')
    sfid = kwargs.get('samplingFeatureID')

    if ids:
        ids = [int(i) for i in ids.split(',')]

    actions = READ.getActions(ids=ids, type=acttype, sfid=sfid)

    act_list = []
    for a in actions:
        a_dct = get_vals(a)

        # Get methods
        m_dct = get_vals(a.MethodObj)

        orgs_dct = None
        if a.MethodObj.OrganizationObj:
            orgs_dct = get_vals(a.MethodObj.OrganizationObj)

        m_dct.update({'Organization': orgs_dct})

        a_dct.update({'Method': m_dct})

        act_list.append(ActionSerializer(a_dct).data)

    return act_list
Ejemplo n.º 4
0
def get_methods(**kwargs):
    ids = kwargs.get('methodID')
    codes = kwargs.get('methodCode')
    mtype = kwargs.get('methodType')

    if ids:
        ids = [int(i) for i in ids.split(',')]
    if codes:
        codes = codes.split(',')

    methods = READ.getMethods(ids=ids,
                              codes=codes,
                              type=mtype)
    m_list = []
    for m in methods:
        m_dct = get_vals(m)

        orgs_dct = None
        if m.OrganizationObj:
            orgs_dct = get_vals(m.OrganizationObj)

        m_dct.update({
            'Organization': orgs_dct
        })
        m_list.append(
            MethodSerializer(m_dct).data
        )

    return m_list
Ejemplo n.º 5
0
def samplingfeaturedatasets_creator(sfd):
    ds = sfd.datasets.keys()
    related = sfd.related_features
    all_ds = []
    # all_related = []
    for d in ds:
        ds_dct = get_vals(d)
        ds_dct.update({
            u'Results': [result_creator(r) for r in sfd.datasets[d]]
        })
        all_ds.append(ds_dct)
    # related_dct = get_vals(r)
    # all_related.append(related_dct)
    sf = READ.getSamplingFeatures([sfd.SamplingFeatureID])[0]
    sf_dct = get_vals(sf)

    related_vals = None
    if related:
        related_vals = get_vals(related)

    sf_dct.update({
        u'Datasets': all_ds,
        u'related_features': related_vals
    })

    return sf_dct
Ejemplo n.º 6
0
def samplingfeaturedatasets_creator(sfd):
    ds = sfd.datasets.keys()
    all_ds = []
    for d in ds:
        ds_dct = get_vals(d)
        ds_dct.update(
            {u'Results': [result_creator(r) for r in sfd.datasets[d]]})
        all_ds.append(ds_dct)
    sf = READ.getSamplingFeatures([sfd.SamplingFeatureID])[0]
    sf_dct = get_vals(sf)
    sf_dct.update({
        u'Datasets': all_ds,
    })

    return sf_dct
Ejemplo n.º 7
0
    def put(self, user_id, cursor):
        if not request.json:
            abort(400)

        parser = reqparse.RequestParser()
        try:
            parser.add_argument('username', type=str, required=True)
            parser.add_argument('first_name', type=str, required=True)
            parser.add_argument('last_name', type=str, required=True)
            request_params = parser.parse_args()
        except:
            abort(400)

        response = {'status': 'Access denied'}
        responseCode = 403

        if session['username'] == user_id:
            cursor.callproc(
                'updateUser',
                get_vals(request_params, 'username', 'first_name',
                         'last_name'))
            user = cursor.fetchone()
            cursor.connection.commit()
            user['uri'] = request.url
            response = {'user': user}
            responseCode = 200

        return make_response(jsonify(response), responseCode)
Ejemplo n.º 8
0
def get_variables(**kwargs):
    ids = kwargs.get('variableID')
    codes = kwargs.get('variableCode')
    sitecode = kwargs.get('siteCode')

    if ids:
        ids = [int(i) for i in ids.split(',')]
    if codes:
        codes = codes.split(',')

    res = kwargs.get('results')

    if type(res) in [str, unicode]:
        if res.upper() == 'TRUE':
            res = True
        else:
            res = False

    varibles = READ.getVariables(ids=ids,
                                 codes=codes,
                                 sitecode=sitecode,
                                 results=res)

    vars_list = []
    for var in varibles:
        var_dct = get_vals(var)
        vars_list.append(VariableSerializer(var_dct).data)

    return vars_list
Ejemplo n.º 9
0
def get_variables(**kwargs):
    ids = kwargs.get('variableID')
    codes = kwargs.get('variableCode')
    sitecode = kwargs.get('siteCode')

    if ids:
        ids = [int(i) for i in ids.split(',')]
    if codes:
        codes = codes.split(',')

    res = kwargs.get('results')

    if type(res) in [str, unicode]:
        if res.upper() == 'TRUE':
            res = True
        else:
            res = False

    varibles = READ.getVariables(ids=ids,
                                 codes=codes,
                                 sitecode=sitecode,
                                 results=res)

    vars_list = []
    for var in varibles:
        var_dct = get_vals(var)
        vars_list.append(
            VariableSerializer(var_dct).data
        )

    return vars_list
Ejemplo n.º 10
0
def get_methods(**kwargs):
    ids = kwargs.get('methodID')
    codes = kwargs.get('methodCode')
    mtype = kwargs.get('methodType')

    if ids:
        ids = [int(i) for i in ids.split(',')]
    if codes:
        codes = codes.split(',')

    methods = READ.getMethods(ids=ids, codes=codes, type=mtype)
    m_list = []
    for m in methods:
        m_dct = get_vals(m)
        m_dct.update({'Organization': get_vals(m.OrganizationObj)})
        m_list.append(MethodSerializer(m_dct).data)

    return m_list
Ejemplo n.º 11
0
def result_creator(res):
    res_dct = get_vals(res)

    act_obj = res.FeatureActionObj.ActionObj

    # Get methods
    m_dct = get_vals(act_obj.MethodObj)

    # Get Organization
    orgs_dct = None
    if act_obj.MethodObj.OrganizationObj:
        orgs_dct = get_vals(act_obj.MethodObj.OrganizationObj)
    m_dct.update({
        'Organization': orgs_dct
    })

    a_dct = get_vals(res.FeatureActionObj.ActionObj)

    a_dct.update({
        'Method': m_dct
    })

    # Get Feature Action ----
    feat_act_dct = get_vals(res.FeatureActionObj)
    feat_act_dct.update({
        'SamplingFeature': get_vals(res.FeatureActionObj.SamplingFeatureObj),
        'Action': a_dct
    })
    # ------------------------

    # Get taxonomic classifier
    taxo_dct = None
    if res.TaxonomicClassifierObj:
        taxo_dct = get_vals(res.TaxonomicClassifierObj)

    res_dct.update({
        'FeatureAction': feat_act_dct,
        'ProcessingLevel': get_vals(res.ProcessingLevelObj),
        'TaxonomicClassifier': taxo_dct,
        'Unit': get_vals(res.UnitsObj),
        'Variable': get_vals(res.VariableObj)
    })

    return res_dct
Ejemplo n.º 12
0
def get_datasetresults(**kwargs):
    ids = kwargs.get('datasetID')
    codes = kwargs.get('datasetCode')
    uuids = kwargs.get('datasetUUID')
    if ids:
        ids = [int(i) for i in kwargs.get('datasetID').split(',')]
    if uuids:
        uuids = kwargs.get('datasetUUID').split(',')
    if codes:
        codes = kwargs.get('datasetCode').split(',')

    ds_type = kwargs.get('datasetType')

    dataSetResults = READ.getDataSetsResults(ids=ids,
                                             codes=codes,
                                             uuids=uuids,
                                             dstype=ds_type)

    dsr_list = []
    for dsr in dataSetResults:
        dsr_dct = get_vals(dsr)

        ds_dct = get_vals(dsr.DataSetObj)

        res_dct = result_creator(dsr.ResultObj)

        dsr_dct.update({
            'Result': res_dct,
            'DataSet': ds_dct
        })

        Serializer = DataSetsResultsSerializer(dsr_dct)
        if dsr.ResultObj.FeatureActionObj.SamplingFeatureObj.SamplingFeatureTypeCV == 'Specimen':
            Serializer.fields['Result'].fields['FeatureAction'].fields['SamplingFeature'] = SpecimensSerializer()
        if dsr.ResultObj.FeatureActionObj.SamplingFeatureObj.SamplingFeatureTypeCV == 'Site':
            Serializer.fields['Result'].fields['FeatureAction'].fields['SamplingFeature'] = SitesSerializer()

        dsr_list.append(
            Serializer.data
        )

    return dsr_list
Ejemplo n.º 13
0
def result_creator(res):
    res_dct = get_vals(res)

    act_obj = res.FeatureActionObj.ActionObj

    # Get methods
    m_dct = get_vals(act_obj.MethodObj)

    # Get Organization
    orgs_dct = None
    if act_obj.MethodObj.OrganizationObj:
        orgs_dct = get_vals(act_obj.MethodObj.OrganizationObj)
    m_dct.update({'Organization': orgs_dct})

    a_dct = get_vals(res.FeatureActionObj.ActionObj)

    a_dct.update({'Method': m_dct})

    # Get Feature Action ----
    feat_act_dct = get_vals(res.FeatureActionObj)
    feat_act_dct.update({
        'SamplingFeature':
        get_vals(res.FeatureActionObj.SamplingFeatureObj),
        'Action':
        a_dct
    })
    # ------------------------

    # Get taxonomic classifier
    taxo_dct = None
    if res.TaxonomicClassifierObj:
        taxo_dct = get_vals(res.TaxonomicClassifierObj)

    res_dct.update({
        'FeatureAction': feat_act_dct,
        'ProcessingLevel': get_vals(res.ProcessingLevelObj),
        'TaxonomicClassifier': taxo_dct,
        'Unit': get_vals(res.UnitsObj),
        'Variable': get_vals(res.VariableObj)
    })

    return res_dct
Ejemplo n.º 14
0
def get_datasetresults(**kwargs):
    db_check()
    ids = kwargs.get('datasetID')
    codes = kwargs.get('datasetCode')
    uuids = kwargs.get('datasetUUID')
    if ids:
        ids = [int(i) for i in kwargs.get('datasetID').split(',')]
    if uuids:
        uuids = kwargs.get('datasetUUID').split(',')
    if codes:
        codes = kwargs.get('datasetCode').split(',')

    ds_type = kwargs.get('datasetType')

    dataSetResults = READ.getDataSetsResults(ids=ids,
                                             codes=codes,
                                             uuids=uuids,
                                             dstype=ds_type)

    dsr_list = []
    for dsr in dataSetResults:
        dsr_dct = get_vals(dsr)

        ds_dct = get_vals(dsr.DataSetObj)

        res_dct = result_creator(dsr.ResultObj)

        dsr_dct.update({'Result': res_dct, 'DataSet': ds_dct})

        Serializer = DataSetsResultsSerializer(dsr_dct)
        if dsr.ResultObj.FeatureActionObj.SamplingFeatureObj.SamplingFeatureTypeCV == 'Specimen':
            Serializer.fields['Result'].fields['FeatureAction'].fields[
                'SamplingFeature'] = SpecimensSerializer()
        if dsr.ResultObj.FeatureActionObj.SamplingFeatureObj.SamplingFeatureTypeCV == 'Site':
            Serializer.fields['Result'].fields['FeatureAction'].fields[
                'SamplingFeature'] = SitesSerializer()

        dsr_list.append(Serializer.data)

    return dsr_list
Ejemplo n.º 15
0
def samplingfeaturedatasets_creator(sfd):
    ds = sfd.datasets.keys()
    related = sfd.related_features
    all_ds = []
    # all_related = []
    for d in ds:
        ds_dct = get_vals(d)
        ds_dct.update(
            {u'Results': [result_creator(r) for r in sfd.datasets[d]]})
        all_ds.append(ds_dct)
    # related_dct = get_vals(r)
    # all_related.append(related_dct)
    sf = READ.getSamplingFeatures([sfd.SamplingFeatureID])[0]
    sf_dct = get_vals(sf)

    related_vals = None
    if related:
        related_vals = get_vals(related)

    sf_dct.update({u'Datasets': all_ds, u'related_features': related_vals})

    return sf_dct
Ejemplo n.º 16
0
def get_actions(**kwargs):
    # TODO: Get relationship to affiliations via ActionBy, currently not in API
    ids = kwargs.get('actionID')
    acttype = kwargs.get('actionType')
    sfid = kwargs.get('samplingFeatureID')

    if ids:
        ids = [int(i) for i in ids.split(',')]

    actions = READ.getActions(ids=ids,
                              type=acttype,
                              sfid=sfid)

    act_list = []
    for a in actions:
        a_dct = get_vals(a)

        # Get methods
        m_dct = get_vals(a.MethodObj)

        orgs_dct = None
        if a.MethodObj.OrganizationObj:
            orgs_dct = get_vals(a.MethodObj.OrganizationObj)

        m_dct.update({
            'Organization': orgs_dct
        })

        a_dct.update({
            'Method': m_dct
        })

        act_list.append(
            ActionSerializer(a_dct).data
        )

    return act_list
Ejemplo n.º 17
0
def get_people(**kwargs):
    ids = None
    if kwargs.get('peopleID'):
        ids = [int(i) for i in kwargs.get('peopleID').split(',')]
    person_first = kwargs.get('firstName')
    person_last = kwargs.get('lastName')

    Ppl = READ.getPeople(ids=ids, firstname=person_first, lastname=person_last)

    Ppl_list = []
    for person in Ppl:
        ppl_dct = get_vals(person)
        Ppl_list.append(PeopleSerializer(ppl_dct).data)

    return Ppl_list
Ejemplo n.º 18
0
def get_units(**kwargs):
    ids = kwargs.get('unitsID')
    name = kwargs.get('unitsName')
    unitstype = kwargs.get('unitsType')

    if ids:
        ids = [int(i) for i in ids.split(',')]

    units = READ.getUnits(ids=ids, name=name, type=unitstype)

    units_list = []
    for u in units:
        units_dct = get_vals(u)
        units_list.append(UnitSerializer(units_dct).data)

    return units_list
Ejemplo n.º 19
0
def get_datasets(**kwargs):
    codes = kwargs.get('datasetCode')
    uuids = kwargs.get('datasetUUID')

    if codes:
        codes = codes.split(',')
    if uuids:
        uuids = uuids.split(',')

    datasets = READ.getDataSets(codes=codes, uuids=uuids)
    ds_list = []
    for ds in datasets:
        ds_dct = get_vals(ds)
        ds_list.append(DataSetSerializer(ds_dct).data)

    return ds_list
Ejemplo n.º 20
0
def get_processinglevels(**kwargs):
    ids = kwargs.get('processingLevelID')
    codes = kwargs.get('processingLevelCode')

    if ids:
        ids = [int(i) for i in ids.split(',')]
    if codes:
        codes = codes.split(',')

    proclevels = READ.getProcessingLevels(ids=ids, codes=codes)

    pl_list = []
    for pl in proclevels:
        pl_dct = get_vals(pl)
        pl_list.append(ProcessingLevelSerializer(pl_dct).data)

    return pl_list
Ejemplo n.º 21
0
def get_organizations(**kwargs):
    ids = kwargs.get('organizationID')
    codes = kwargs.get('organizationCode')

    if ids:
        ids = [int(i) for i in ids.split(',')]
    if codes:
        codes = codes.split(',')

    organizations = READ.getOrganizations(ids=ids, codes=codes)

    orgs_list = []
    for org in organizations:
        org_dct = get_vals(org)
        orgs_list.append(OrganizationSerializer(org_dct).data)

    return orgs_list
Ejemplo n.º 22
0
def get_datasets(**kwargs):
    codes = kwargs.get('datasetCode')
    uuids = kwargs.get('datasetUUID')

    if codes:
        codes = codes.split(',')
    if uuids:
        uuids = uuids.split(',')

    datasets = READ.getDataSets(codes=codes, uuids=uuids)
    ds_list = []
    for ds in datasets:
        ds_dct = get_vals(ds)
        ds_list.append(
            DataSetSerializer(ds_dct).data
        )

    return ds_list
Ejemplo n.º 23
0
    def post(self, cursor):
        if not request.json:
            abort(400)

        parser = reqparse.RequestParser()
        try:
            parser.add_argument('first_name', type=str, required=True)
            parser.add_argument('last_name', type=str, required=True)
            parser.add_argument('username', type=str, required=True)
            parser.add_argument('password', type=str, required=True)
            request_params = parser.parse_args()
        except:
            abort(400)

        user = get_user(cursor, request_params['username'])
        if user:
            response = {'status': 'Username already taken'}
            responseCode = 409
        else:
            try:
                ldapConnection = get_ldapConnection(request_params['username'],
                                                    request_params['password'])
                ldapConnection.open()
                ldapConnection.start_tls()
                ldapConnection.bind()

                session['username'] = request_params['username']

                cursor.callproc(
                    'addUser',
                    get_vals(request_params, 'username', 'first_name',
                             'last_name'))
                cursor.connection.commit()
                user = cursor.fetchone()
                user['uri'] = uri(request.url, user['user_id'])

                response = {'user': user}
                responseCode = 200
            except LDAPException:
                abort(403)
            finally:
                ldapConnection.unbind()

        return make_response(jsonify(response), responseCode)
Ejemplo n.º 24
0
def get_people(**kwargs):
    ids = None
    if kwargs.get('peopleID'):
        ids = [int(i) for i in kwargs.get('peopleID').split(',')]
    person_first = kwargs.get('firstName')
    person_last = kwargs.get('lastName')

    Ppl = READ.getPeople(ids=ids,
                         firstname=person_first,
                         lastname=person_last)

    Ppl_list = []
    for person in Ppl:
        ppl_dct = get_vals(person)
        Ppl_list.append(
            PeopleSerializer(ppl_dct).data
        )

    return Ppl_list
Ejemplo n.º 25
0
def get_units(**kwargs):
    ids = kwargs.get('unitsID')
    name = kwargs.get('unitsName')
    unitstype = kwargs.get('unitsType')

    if ids:
        ids = [int(i) for i in ids.split(',')]

    units = READ.getUnits(ids=ids,
                          name=name,
                          type=unitstype)

    units_list = []
    for u in units:
        units_dct = get_vals(u)
        units_list.append(
            UnitSerializer(units_dct).data
        )

    return units_list
Ejemplo n.º 26
0
def get_organizations(**kwargs):
    ids = kwargs.get('organizationID')
    codes = kwargs.get('organizationCode')

    if ids:
        ids = [int(i) for i in ids.split(',')]
    if codes:
        codes = codes.split(',')

    organizations = READ.getOrganizations(ids=ids,
                                          codes=codes)

    orgs_list = []
    for org in organizations:
        org_dct = get_vals(org)
        orgs_list.append(
            OrganizationSerializer(org_dct).data
        )

    return orgs_list
Ejemplo n.º 27
0
def get_processinglevels(**kwargs):
    ids = kwargs.get('processingLevelID')
    codes = kwargs.get('processingLevelCode')

    if ids:
        ids = [int(i) for i in ids.split(',')]
    if codes:
        codes = codes.split(',')

    proclevels = READ.getProcessingLevels(ids=ids,
                                          codes=codes)

    pl_list = []
    for pl in proclevels:
        pl_dct = get_vals(pl)
        pl_list.append(
            ProcessingLevelSerializer(pl_dct).data
        )

    return pl_list
Ejemplo n.º 28
0
def get_samplingfeatures(**kwargs):
    ids = None
    codes = None
    uuids = None
    if kwargs.get('samplingFeatureID'):
        ids = [int(i) for i in kwargs.get('samplingFeatureID').split(',')]
    if kwargs.get('samplingFeatureUUID'):
        uuids = kwargs.get('samplingFeatureUUID').split(',')
    if kwargs.get('samplingFeatureCode'):
        codes = kwargs.get('samplingFeatureCode').split(',')

    sf_type = kwargs.get('samplingFeatureType')
    res = kwargs.get('results')

    if type(res) in [str, unicode]:
        if res.upper() == 'TRUE':
            res = True
        else:
            res = False

    sampling_features = READ.getSamplingFeatures(ids=ids,
                                                 codes=codes,
                                                 uuids=uuids,
                                                 type=sf_type,
                                                 wkt=None,
                                                 results=res)

    sf_list = []
    for sf in sampling_features:
        sf_dct = get_vals(sf)
        serialized = SamplingFeatureSerializer(sf_dct).data
        if sf.SamplingFeatureTypeCV == 'Site':
            serialized = SitesSerializer(sf_dct).data
        if sf.SamplingFeatureTypeCV == 'Specimen':
            serialized = SpecimensSerializer(sf_dct).data

        sf_list.append(
            serialized
        )

    return sf_list
Ejemplo n.º 29
0
def get_samplingfeatures(**kwargs):
    db_check()
    ids = None
    codes = None
    uuids = None
    if kwargs.get('samplingFeatureID'):
        ids = [int(i) for i in kwargs.get('samplingFeatureID').split(',')]
    if kwargs.get('samplingFeatureUUID'):
        uuids = kwargs.get('samplingFeatureUUID').split(',')
    if kwargs.get('samplingFeatureCode'):
        codes = kwargs.get('samplingFeatureCode').split(',')

    sf_type = kwargs.get('samplingFeatureType')
    res = kwargs.get('results')

    if type(res) in [str, unicode]:
        if res.upper() == 'TRUE':
            res = True
        else:
            res = False

    sampling_features = READ.getSamplingFeatures(ids=ids,
                                                 codes=codes,
                                                 uuids=uuids,
                                                 type=sf_type,
                                                 wkt=None,
                                                 results=res)

    sf_list = []
    for sf in sampling_features:
        sf_dct = get_vals(sf)
        serialized = SamplingFeatureSerializer(sf_dct).data
        if sf.SamplingFeatureTypeCV == 'Site':
            serialized = SitesSerializer(sf_dct).data
        if sf.SamplingFeatureTypeCV == 'Specimen':
            serialized = SpecimensSerializer(sf_dct).data

        sf_list.append(serialized)

    return sf_list