コード例 #1
0
def find(**kwargs):

    if 'deviceID' in kwargs:
        kwargs['deviceID'] = '"' + _URL + _DEVICE_PATH + "/" + kwargs['deviceID'] + '"'
    if 'individualID' in kwargs:
        kwargs['individualID'] = '"' + _URL + _INDIVIDUAL_PATH + "/" + kwargs['individualID'] + '"'

    attachments = LajiStoreAPI.get_all_deviceindividual(**kwargs)
    devices = LajiStoreAPI.get_all_devices()
    deviceIDs = set([d["id"] for d in devices])
    individuals = LajiStoreAPI.get_all_individuals()
    individualIDs = set()

    for i in individuals:
        # soft removed?
        if not i["deleted"]:
            individualIDs.add(i["id"])

    valid = []

    for attachment in attachments:
        if "removed" not in attachment:
            attachment["removed"] = None
        # really removed?
        if attachment['deviceID'] in deviceIDs and attachment['individualID'] in individualIDs:
            valid.append(attachment)
    return valid
コード例 #2
0
ファイル: document.py プロジェクト: Team-Papukaani/papukaani
    def update(self):
        '''
        Saves changes to the object to the corresponding LajiStore entry.
        '''

        self.dateEdited = current_time_as_lajistore_timestamp()
        dict = self.to_dict()
        LajiStoreAPI.update_document(**dict)  # to_dict() puts all arguments here
コード例 #3
0
    def testGetAll(self):
        response = LajiStoreAPI.get_all_documents()
        self.assertGreaterEqual(len(response), 0)

        response = LajiStoreAPI.get_all_devices()
        self.assertGreaterEqual(len(response), 0)

        response = LajiStoreAPI.get_all_individuals()
        self.assertGreaterEqual(len(response), 0)
コード例 #4
0
    def testSingleArgumentQueries(self):
        response = LajiStoreAPI.get_all_devices(deviceManufacturerID="ABCD1234567")
        self.assertGreaterEqual(len(response), 0)

        response = LajiStoreAPI.get_all_documents(deviceID="ABCDTESTTEST")
        self.assertGreaterEqual(len(response), 0)

        response = LajiStoreAPI.get_all_individuals(deleted=True)
        self.assertGreaterEqual(len(response), 0)

        response = LajiStoreAPI.get_all_documents(deviceID="NOTFOUND")
        self.assertEqual(len(response), 0)
コード例 #5
0
ファイル: testLajiStoreAPI.py プロジェクト: leftees/papukaani
    def testLajiStoreIndividual(self):
        response = LajiStoreAPI.post_individual(**self.individual)
        self.assertEquals(True, "id" in response)

        response = LajiStoreAPI.get_individual(response["id"])
        self.assertEquals(True, "id" in response)

        self.individual["id"] = response["id"]
        response = LajiStoreAPI.update_individual(**self.individual)
        self.assertEquals(True, "id" in response)

        response = LajiStoreAPI.delete_individual(response["id"])
        self.assertEquals(204, response.status_code)
コード例 #6
0
    def testLajiStoreNews(self):
        response = LajiStoreAPI.post_news(**self.news)
        self.assertEquals(True, "id" in response)

        response = LajiStoreAPI.get_news(response["id"])
        self.assertEquals(True, "id" in response)

        self.news["id"] = response["id"]
        response = LajiStoreAPI.update_news(**self.news)
        self.assertEquals(True, "id" in response)

        response = LajiStoreAPI.delete_news(response["id"])
        self.assertEquals(204, response.status_code)
コード例 #7
0
    def testLajiStoreDevice(self):
        response = LajiStoreAPI.post_device(**self.device)
        self.assertEquals(True, "id" in response)

        response = LajiStoreAPI.get_device(response["id"])
        self.assertEquals(True, "id" in response)

        self.device["id"] = response["id"]
        response = LajiStoreAPI.update_device(**self.device)
        self.assertEquals(True, "id" in response)

        response = LajiStoreAPI.delete_device(response["id"])
        self.assertEquals(204, response.status_code)
コード例 #8
0
ファイル: testLajiStoreAPI.py プロジェクト: leftees/papukaani
    def testSingleArgumentQueries(self):

        response = LajiStoreAPI.get_all_devices(deviceId="ABCD1234567")
        self.assertGreaterEqual(len(response), 0)

        response = LajiStoreAPI.get_all_documents(documentId="ABCDTESTTEST")
        self.assertGreaterEqual(len(response), 0)

        response = LajiStoreAPI.get_all_individuals(individualId="INDIVIDUALABCD")
        self.assertGreaterEqual(len(response), 0)

        response = LajiStoreAPI.get_all_documents(documentId="NOTFOUND")
        self.assertEqual(len(response), 0)
コード例 #9
0
    def testAddQuery(self):
        q = LajiStoreAPI._add_query(arg1="test")
        self.assertEquals(q, "?q=arg1:test")
        self.assertTrue(" AND " not in q)

        q = LajiStoreAPI._add_query(arg1="test", arg2="value")
        self.assertTrue("arg1:test" in q)
        self.assertTrue("arg2:value" in q)
        self.assertTrue(" AND " in q)

        q = LajiStoreAPI._add_query(arg1="test", arg2="value", arg3=2)
        self.assertTrue("arg1:test" in q)
        self.assertTrue("arg2:value" in q)
        self.assertTrue("arg3:2" in q)
        self.assertTrue(" AND " in q)
コード例 #10
0
ファイル: individual.py プロジェクト: leftees/papukaani
def _get_many(**kwargs):
    data = LajiStoreAPI.get_all_individuals(**kwargs)
    individuals = []
    for individual in data:  # creates a list of individuals to return

        individuals.append(Individual(**individual))
    return individuals
コード例 #11
0
def get(id):
    '''
    Gets a device from LajiStore
    :param id: The LajiStore ID of the individual
    :return: A Individual object
    '''
    individual = LajiStoreAPI.get_individual(id)
    return Individual(**individual)
コード例 #12
0
ファイル: device.py プロジェクト: leftees/papukaani
def get(id):
    '''
    Gets a device from LajiStore
    :param id: The LajiStore ID of the device
    :return: A Device object
    '''
    device = LajiStoreAPI.get_device(id)
    return Device(**device)
コード例 #13
0
ファイル: device.py プロジェクト: leftees/papukaani
def create(deviceId, deviceType, deviceManufacturer, createdAt, lastModifiedAt, facts):
    '''
    Creates a device instance in LajiStore and a corresponding Device object
    :return: A Device object
    '''
    device = LajiStoreAPI.post_device(deviceId, deviceType, deviceManufacturer, createdAt, lastModifiedAt,
                                     facts)
    return Device(**device)
コード例 #14
0
ファイル: document.py プロジェクト: leftees/papukaani
def get(id):
    '''
    Gets a document from LajiStore
    :param id: The LajiStore ID of the document
    :return: A Document object
    '''
    document = LajiStoreAPI.get_document(id)
    return Document(**document)
コード例 #15
0
ファイル: individual.py プロジェクト: leftees/papukaani
def create(individualId, taxon):
    '''
    Creates an individual instance in LajiStore and a corresponding Indiviual object
    :param id: The LajiStore ID of the object
    :param taxon: The LajiStore taxon of the object
    :return: An Individual object
    '''
    individual = LajiStoreAPI.post_individual(individualId, taxon)
    return Individual(**individual)
コード例 #16
0
ファイル: device.py プロジェクト: Team-Papukaani/papukaani
def find(**kwargs):
    '''
    Find all matching devices.
    :param kwargs: Search parameters. No parameters will search all devices.
    :return: A list of Device objects.
    '''
    data = LajiStoreAPI.get_all_devices(**kwargs)
    devices = []
    for device in data:  # Creates a list of devices to return
        devices.append(Device(**device))
    return devices
コード例 #17
0
def find(**kwargs):
    '''
    Find all matching individuals
    :param kwargs: Search parameters
    :return: A list of Individual objects
    '''
    data = LajiStoreAPI.get_all_individuals(**kwargs)
    individuals = []
    for individual in data:  # creates a list of individuals to return
        individuals.append(Individual(**individual))
    return individuals
コード例 #18
0
ファイル: document.py プロジェクト: Team-Papukaani/papukaani
def find(**kwargs):
    '''
    Find all matching documents.
    :param kwargs: Search parameters.
    :return: A list of Document objects.
    '''
    data = LajiStoreAPI.get_all_documents(**kwargs)
    documents = []
    for document in data:  # creates a list of documents to return
        documents.append(Document(**document))
    return documents
コード例 #19
0
ファイル: news.py プロジェクト: Team-Papukaani/papukaani
def find(**kwargs):
    '''
    Find all matching news.
    :param kwargs: Search parameters. No parameters will search all news.
    :return: A list of News objects.
    '''
    data = LajiStoreAPI.get_all_news(**kwargs)
    news = []
    for n in data:  # Creates a list of news to return
        news.append(News(**n))
    return news
コード例 #20
0
ファイル: news.py プロジェクト: Team-Papukaani/papukaani
def get(id):
    '''
    Gets a piece of news from LajiStore
    :param id: The LajiStore ID of the news
    :return: A news object
    '''

    news = LajiStoreAPI.get_news(id)
    if 'id' in news:
        return News(**news)
    else:
        return None
コード例 #21
0
ファイル: document.py プロジェクト: Team-Papukaani/papukaani
def create(gatherings, deviceID, dateCreated=None, dateEdited=None):
    '''
    Creates a document instance in LajiStore and a corresponding Document object
    :return: A Document object
    '''
    current_time = current_time_as_lajistore_timestamp()
    dateCreated = dateCreated if dateCreated else current_time
    dateEdited = dateEdited if dateEdited else current_time
    document = Document(gatherings, deviceID, dateCreated, dateEdited)
    data = LajiStoreAPI.post_document(**document.to_dict())
    document.id = data["id"]

    return document
コード例 #22
0
ファイル: document.py プロジェクト: leftees/papukaani
def create(documentId, gatherings, deviceId, facts=[], lastModifiedAt=None, createdAt=None):
    '''
    Creates a document instance in LajiStore and a corresponding Document object
    :return: A Document object
    '''
    if lastModifiedAt == None:
        lastModifiedAt = current_time_as_lajistore_timestamp()

    if createdAt == None:
        createdAt = current_time_as_lajistore_timestamp()

    document = LajiStoreAPI.post_document(documentId=documentId, lastModifiedAt=lastModifiedAt, deviceId=deviceId , createdAt=createdAt, facts=facts, gatherings=[g.to_lajistore_json() for g in gatherings])
    return Document(**document)
コード例 #23
0
def create(nickname, taxon, description=None, descriptionURL=None):
    '''
    Creates an individual instance in LajiStore and a corresponding Individual object
    :param nickname: nickname for the individual
    :param taxon: The LajiStore taxon of the object
    :return: An Individual object
    '''
    individual = Individual(nickname, taxon, description, descriptionURL)
    data = LajiStoreAPI.post_individual(**individual.__dict__)

    individual.id = data['id']

    return individual
コード例 #24
0
ファイル: news.py プロジェクト: Team-Papukaani/papukaani
def create(title, content, language, publishDate=None, eventDate=None, targets=None):
    '''
    Creates a news instance in LajiStore and a corresponding News object
    :return: A News object
    '''
    try:
        news = News(title, content, language, publishDate, eventDate, targets)
        data = LajiStoreAPI.post_news(**news.__dict__)
        news.id = data['id']
    except Exception as e:
        raise Exception("Error saving data")

    return news
コード例 #25
0
ファイル: device.py プロジェクト: Team-Papukaani/papukaani
def create(deviceType, deviceManufacturer, deviceManufacturerID, dateCreated=None, dateEdited=None):
    '''
    Creates a device instance in LajiStore and a corresponding Device object
    :return: A Device object
    '''
    originaldevice = _find_duplicate(deviceManufacturerID)
    if originaldevice is not None:
        return originaldevice

    current_time = current_time_as_lajistore_timestamp()

    dateCreated = dateCreated if dateCreated else current_time
    dateEdited = dateEdited if dateEdited else current_time
    device = Device(deviceType, deviceManufacturer, deviceManufacturerID, dateCreated, dateEdited)
    data = LajiStoreAPI.post_device(**device.__dict__)

    device.id = data['id']

    return device
コード例 #26
0
ファイル: news.py プロジェクト: Team-Papukaani/papukaani
 def update(self):
     '''
     Saves changes to the object to the corresponding LajiStore entry.
     '''
     LajiStoreAPI.update_news(**self.__dict__)  # __dict__ puts all arguments here.
コード例 #27
0
ファイル: news.py プロジェクト: Team-Papukaani/papukaani
 def delete(self):
     '''
     Deletes the news from LajiStore. Note that the object is not destroyed!
     '''
     LajiStoreAPI.delete_news(self.id)
コード例 #28
0
ファイル: news.py プロジェクト: Team-Papukaani/papukaani
def delete_all():
    '''
    Deletes all news. Can only be used in test enviroment.
    '''
    LajiStoreAPI.delete_all_news()
コード例 #29
0
ファイル: document.py プロジェクト: leftees/papukaani
def _get_many(**kwargs):
    data = LajiStoreAPI.get_all_documents(**kwargs)
    documents = []
    for document in data:  # creates a list of documents to return
        documents.append(Document(**document))
    return documents
コード例 #30
0
ファイル: document.py プロジェクト: leftees/papukaani
def delete_all():
    '''
    Deletes all documents. Can only be used in test enviroment.
    '''
    LajiStoreAPI.delete_all_documents()