Esempio n. 1
0
def delete_products(skus):
    try:
        with create_session() as s:
            for p in _get_products(skus, s):
                s.delete(p)
    except:
        raise
        return 'Delete failed'
    return 'Deleted'
Esempio n. 2
0
def activate_review_objects(uris):
    try:
        with create_session() as s:
            for o in _get_review_objects(s, uris, is_active=False):
                o.flags = o.flags & ~constants.CONST_FLAGS_INACTIVE
    except:
        raise
        return 'Activate failed'
    return ''
Esempio n. 3
0
def delete_legal_entities(ids):
    try:
        with create_session() as s:
            for p in _get_legal_entities(ids, s):
                s.delete(p)
    except:
        raise
        return 'Delete failed'
    return 'Deleted'
Esempio n. 4
0
def create_a_comment(body):
    try:
        with create_session() as s:
            o = Comment()
            o.body = body
            s.add(o)
        return ''
    except Exception as e:
        logging.warning(e)
        return 'Write a comments failed'
Esempio n. 5
0
def delete_review_objects(uris):
    try:
        with create_session() as s:
            for o in _get_review_objects(s, uris, is_active=False):
                if o.flags & o.flags | constants.CONST_FLAGS_INACTIVE:
                    return 'Design already deleted'
                o.flags = o.flags | constants.CONST_FLAGS_INACTIVE
    except:
        raise
        return 'Delete failed'
    return ''
Esempio n. 6
0
def report_review_objects(uris):
    try:
        with create_session() as s:
            for o in _get_review_objects(s, uris):
                if o.flags & constants.CONST_FLAGS_REPORTED:
                    return 'Design already reported'
                o.flags = o.flags | constants.CONST_FLAGS_INACTIVE
                o.flags = o.flags | constants.CONST_FLAGS_REPORTED
    except:
        raise
        return 'Report failed'
    return ''
Esempio n. 7
0
def create_product(form):
    try:
        with create_session() as s:
            p = Product(form)
            if _get_products([p.sku], s):
                return 'Existed'
            else:
                s.add(p)
                return p.sku
    except:
        raise
        return 'Failed'
Esempio n. 8
0
def create_legal_entity(form):
    try:
        with create_session() as s:
            w = LegalEntity(form)
            if _get_legal_entities([w.id], s):
                return 'Existed'
            else:
                s.add(w)
                return w.id
    except:
        raise
        return 'Failed'
Esempio n. 9
0
def send_notifications():
    try:
        context = {}
        with create_session() as s:
            last_notification_sent = s.query(Notification).order_by(
                Notification.id.desc()).first()
            last_timestamp = float(last_notification_sent.created_at_utc
                                   ) if last_notification_sent else -1
            logging.warning('last sent at %s' % last_timestamp)

            for user in l._get_users(s):
                try:
                    context[user.id] = {}
                    total_num_of_reviews = 0
                    for design in user.designs:
                        if len(design.reviews) > 0:
                            context[user.id][design.uri] = {
                                'name': design.description,
                                'reviews': []
                            }
                            for review in design.reviews:
                                if float(review.created_at_utc
                                         ) > last_timestamp:
                                    new_review = {
                                        'body':
                                        review.body,
                                        'timestamp':
                                        utils.epoch_to_datetime_string(
                                            review.created_at_utc)
                                    }
                                    context[user.id][design.uri][
                                        'reviews'].append(new_review)
                                    total_num_of_reviews = total_num_of_reviews + 1
                    if total_num_of_reviews:
                        subject = 'A summary of your recent design submissions'
                        body = emailer.new_review_template.render(
                            designs_dict=context[user.id])
                        receivers = [user.email]
                        emailer.send_html(receivers, subject, body)
                        logging.warning('sent on user %s with email %s' %
                                        (user.id, user.email))
                    else:
                        logging.warning(
                            'no new reviews on user %s, skip sending email' %
                            user.id)
                except:
                    logging.warning('hey user %s email failed' % user.email)
            o = Notification()
            o.updated_at_utc = time.time()
            s.add(o)
    except Exception as e:
        logging.warning(e)
        return 'Failed'
Esempio n. 10
0
def create_a_review(review_object_uri, body, email=None):
    try:
        with create_session() as s:
            r = _get_review_objects(s, [review_object_uri])
            if not r:
                return 'Invalid review object uri'
            o = Review()
            o.review_object_uri = review_object_uri
            o.body = body
            # touch time
            o.updated_at_utc = time.time()
            s.add(o)
        return ''
    except:
        raise
        return 'Failed to post a review, please try again.'
Esempio n. 11
0
def get_one_design(uri):
    """This is the api endpoint to get all related information for designs
  i.e, reviews, thumbnail image links, user info, upvotes, etc.

  Returns: list of dicts
  """
    try:
        with create_session() as s:
            designs = _get_review_objects(s, uris=[uri], is_active=False)
            if designs:
                return _build_design_context(designs[0])
            else:
                return {}
    except:
        raise
        return 'Failed'
Esempio n. 12
0
def get_reviews(uris=None, timestamp=None):
    try:
        context = []
        with create_session() as s:
            reviews = _get_reviews(s, uris=uris, timestamp=None)
            for review in reviews:
                new_review = {
                    'body':
                    review.body,
                    'timestamp':
                    utils.epoch_to_datetime_string(review.created_at_utc)
                }
                context.append(new_review)
        return context
    except:
        raise
        return 'Failed'
Esempio n. 13
0
def get_all_active_designs(uris=None):
    """This is the api endpoint to get all related information for designs
  i.e, reviews, thumbnail image links, user info, upvotes, etc.

  Returns: list of dicts
  """
    try:
        context = []
        with create_session() as s:
            designs = _get_review_objects(s, uris=uris)
            for design in designs:
                new_design = _build_design_context(design)
                context.append(new_design)
        logging.warning(context)
        return context
    except:
        raise
        return 'Failed'
Esempio n. 14
0
def touch_thumbnail(review_object_uri, filename, size_code):
    try:
        with create_session() as s:
            o = _get_thumbnail(s, [review_object_uri], [filename])
            if not o:
                o = Thumbnail()
            else:
                o = o[0]
                logging.warning('updating existing thumbnail')
            o.review_object_uri = review_object_uri
            o.filename = filename
            o.size_code = size_code
            # touch time
            o.updated_at_utc = time.time()
            s.add(o)
        return 'touch thumbnail succeeded'
    except:
        raise
        return 'Failed'
Esempio n. 15
0
def create_transaction(form):
    try:
        with create_session() as s:
            t = Transaction(form)

            entities = _get_legal_entities(
                [t.from_legal_entity, t.to_legal_entity], s)
            if len(entities) != 2:
                return 'Invalid entity ids'
            products = _get_products([t.product_sku], s)
            if len(products) != 1:
                return 'Invalid product sku'

            if _get_txns([t.id], s):
                return 'Existed'
            else:
                s.add(t)
                return t.id
    except:
        raise
        return 'Failed'
Esempio n. 16
0
def touch_review_object(uri,
                        filename=None,
                        email=None,
                        name=None,
                        description=None):
    try:
        with create_session() as s:
            o = _get_review_objects(s, [uri])
            if not o:
                o = ReviewObject()
            else:
                o = o[0]
                logging.warning('updating existing design')
            if filename:
                logging.warning('updating filename!!')
                o.filename = filename
            # always update name and desc
            logging.warning('updating desc!')
            o.description = description
            logging.warning('updating name!')
            o.name = name

            if not o.uri:
                o.uri = uri
            else:
                logging.warning('not updating uri for existing design')
            # touch time
            o.updated_at_utc = time.time()

            # try create the user
            if email:
                user = touch_user(s, email)
                o.uid = user.id
                logging.warning('the user id is: %s' % o.uid)
            s.add(o)
        return 'touch design succeeded'
    except:
        raise
        return 'Failed'
Esempio n. 17
0
def get_txns(ids):
    """Return a list of Transaction object in strings"""
    with create_session() as s:
        return [t.to_string() for t in _get_txns(ids, s)]
Esempio n. 18
0
def get_legal_entities(ids):
    """Return a list of Product object in strings"""
    with create_session() as s:
        return [w.to_string() for w in _get_legal_entities(ids, s)]
Esempio n. 19
0
def get_email_by_uid(uid):
    with create_session() as session:
        q = session.query(User)
        q = q.filter(User.id == uid)
        user = q.first()
        return user.email if user else ''
Esempio n. 20
0
def get_products(skus):
    """Return a list of Product object in strings"""
    with create_session() as s:
        return [w.to_string() for w in _get_products(skus, s)]
Esempio n. 21
0
def get_active_review_objects(uris=None):
    """Return a list of ReviewObject object in strings"""
    with create_session() as s:
        return _get_review_objects(s, uris)
def record_point(point: WeatherPoint):
    session = session_factory.create_session()
    session.add(point)
    session.commit()
    session.close()