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()