def get_service_profile(self):
 
   authorName = self.request.matchdict['authorname']
   serviceName = self.request.matchdict['servicename']
 
   retriever = ProfileRetrievalFactory.get_retriever_for(serviceName)
   if not retriever:
     self.request.response.status_int = 404
     return {'error':'profile information is not available for service %s' % serviceName}  
     
   # get author-id for authorName
   try:
     author_id, = self.dbSession.query(Author.id).filter(Author.author_name == authorName).one()
   except:
     self.request.response.status_int = 404
     return {'error':'unknown author %s' % authorName}  
 
   # get service-id for serviceName
   try:
     serviceId, = self.dbSession.query(Service.id).filter(Service.service_name == serviceName).one()
   except:
     self.request.response.status_int = 404
     return {'error':'unknown service %s' % authorName}  
 
   try:
     mapping = self.dbSession.query(AuthorServiceMap).filter_by(service_id=serviceId,author_id=author_id).one()
   except:
     self.request.response.status_int = 404
     return {'error':'unknown service for author'}
 
   profileJSON = retriever.get_author_profile(mapping,self.dbSession,oAuthConfig.get(serviceName))
 
   self.dbSession.close()
 
   return profileJSON
def serviceBuild(authorName, serviceName, incremental, s3Bucket, aws_access_key, aws_secret_key):

  print("refresh %s serviceEvents for %s" % (authorName,serviceName))

  dbSession = SimpleDBSession()

  # get the service-id for serviceName
  serviceId, = dbSession.query(Service.id).filter(Service.service_name == serviceName).one()
  
  # get author-id for authorName
  authorId, = dbSession.query(Author.id).filter(Author.author_name == authorName).one()

  mapping = dbSession.query(AuthorServiceMap).filter_by(service_id=serviceId,author_id=authorId).one()

  collector = EventCollectorFactory.get_collector_for(serviceName,s3Bucket, aws_access_key, aws_secret_key)
  if collector:
    collector.build_one(mapping,dbSession,oAuthConfig.get(serviceName),incremental)

  dbSession.close()