def search(self,
            asset_manager_id,
            book_ids=None,
            business_units=None,
            owner_ids=None,
            party_ids=None,
            book_statuses=None):
     self.logger.info('Search Books - Asset Manager: %s', asset_manager_id)
     search_params = {}
     # Potentially roll this into a loop through args rather than explicitly named - depends on additional validation
     if book_ids:
         search_params['book_ids'] = ','.join(book_ids)
     if business_units:
         search_params['business_units'] = ','.join(business_units)
     if owner_ids:
         search_params['owner_ids'] = ','.join(owner_ids)
     if party_ids:
         search_params['party_ids'] = ','.join(party_ids)
     if book_statuses:
         search_params['book_statuses'] = ','.join(book_statuses)
     url = '%s/books/%s' % (self.endpoint, asset_manager_id)
     response = self.session.get(url, params=search_params)
     if response.ok:
         books = [json_to_book(json_book) for json_book in response.json()
                  ] if response.json() else None
         self.logger.info('Returned %s Books.', len(books) if books else 0)
         return books
     else:
         self.logger.error(response.text)
         response.raise_for_status()
Exemple #2
0
 def books_by_asset_manager(self, asset_manager_id):
     self.logger.info('Retrieve Books by Asset Manager: %s', asset_manager_id)
     url = '%s/books/%s' % (self.endpoint, asset_manager_id)
     response = self.session.get(url)
     if response.ok:
         books = [json_to_book(json_book) for json_book in response.json()]
         self.logger.info('Returned %s Books.', len(books))
         return books
     else:
         self.logger.error(response.text)
         response.raise_for_status()
Exemple #3
0
 def retire(self, asset_manager_id, book_id):
     self.logger.info('Retire Book - Asset Manager: %s - Book ID: %s', asset_manager_id, book_id)
     url = '%s/books/%s/%s' % (self.endpoint, asset_manager_id, book_id)
     json = {'book_status': 'Retired'}
     response = self.session.patch(url, json=json)
     if response.ok:
         self.logger.info('Successfully Retired Book - Asset Manager: %s - Book ID: %s', asset_manager_id, book_id)
         return json_to_book(response.json())
     else:
         self.logger.error(response.text)
         response.raise_for_status()
Exemple #4
0
 def amend(self, book):
     self.logger.info('Amend Book - Asset Manager: %s - Book ID: %s', book.asset_manager_id, book.book_id)
     url = '%s/books/%s/%s' % (self.endpoint, book.asset_manager_id, book.book_id)
     response = self.session.put(url, json=book.to_interface())
     if response.ok:
         self.logger.info('Successfully Amended Book - Asset Manager: %s - Book ID: %s', book.asset_manager_id,
                          book.book_id)
         book = json_to_book(response.json())
         return book
     else:
         self.logger.error(response.text)
         response.raise_for_status()
Exemple #5
0
 def retrieve(self, asset_manager_id, book_id, version=None):
     self.logger.info('Retrieve Book - Asset Manager: %s - Book ID: %s', asset_manager_id, book_id)
     url = '%s/books/%s/%s' % (self.endpoint, asset_manager_id, book_id)
     if version:
         url += '?version=%d' % int(version)
     response = self.session.get(url)
     if response.ok:
         self.logger.info('Successfully Retrieved Book - Asset Manager: %s - Book ID: %s', asset_manager_id,
                          book_id)
         return json_to_book(response.json())
     else:
         self.logger.error(response.text)
         response.raise_for_status()