Example #1
0
    def prepare_clients_search_statement(self, filter):
        conditions = []
        conditions += id_filter(filter, 'ids', self.clients.c.id)
        conditions += time_cutoff_filter(
            filter,
            'created',
            self.clients.c.creation_time,
        )
        conditions += string_equal_filter(
            filter,
            'client_ids',
            self.clients.c.client_id,
        )
        conditions += string_like_filter(
            filter,
            'creation_names',
            self.clients.c.creation_name,
        )
        conditions += time_cutoff_filter(
            filter,
            'access_token_expired',
            self.clients.c.access_token_expiration_time,
        )

        statement = self.clients.select()
        if conditions:
            statement = statement.where(and_(*conditions))
        return statement
Example #2
0
    def prepare_bans_search_statement(self, filter):
        conditions = []
        conditions += id_filter(filter, 'ids', self.bans.c.id)
        conditions += time_cutoff_filter(filter, 'created',
                                         self.bans.c.creation_time)
        conditions += remote_origin_filter(
            filter,
            'remote_origins',
            self.bans.c.remote_origin,
        )
        conditions += string_equal_filter(filter, 'scopes', self.bans.c.scope)
        conditions += string_like_filter(filter, 'reasons', self.bans.c.reason)
        conditions += string_like_filter(filter, 'notes', self.bans.c.note)
        conditions += time_cutoff_filter(filter, 'expired',
                                         self.bans.c.expiration_time)
        conditions += time_cutoff_filter(filter, 'viewed',
                                         self.bans.c.view_time)
        conditions += id_filter(
            filter,
            'created_by_user_ids',
            self.bans.c.created_by_user_id,
        )
        conditions += id_filter(filter, 'user_ids', self.bans.c.user_id)

        statement = self.bans.select()
        if conditions:
            statement = statement.where(and_(*conditions))
        return statement
Example #3
0
    def prepare_logs_search_statement(self, filter):
        conditions = []
        conditions += id_filter(filter, 'ids', self.logs.c.id)
        conditions += time_cutoff_filter(
            filter,
            'created',
            self.logs.c.creation_time,
        )
        conditions += string_equal_filter(
            filter,
            'scopes',
            self.logs.c.scope,
        )
        conditions += remote_origin_filter(
            filter,
            'remote_origins',
            self.logs.c.remote_origin,
        )
        conditions += id_filter(
            filter,
            'subject_ids',
            self.logs.c.subject_id,
        )
        conditions += id_filter(
            filter,
            'object_ids',
            self.logs.c.object_id,
        )

        statement = self.logs.select()
        if conditions:
            statement = statement.where(and_(*conditions))
        return statement
Example #4
0
	def prepare_sticker_placements_search_statement(self, filter):
		conditions = []
		conditions += id_filter(filter, 'ids', self.sticker_placements.c.id)
		conditions += time_cutoff_filter(
			filter,
			'placed',
			self.sticker_placements.c.placement_time,
		)
		conditions += id_filter(
			filter,
			'subject_ids',
			self.sticker_placements.c.subject_id,
		)
		conditions += id_filter(
			filter,
			'user_ids',
			self.sticker_placements.c.user_id,
		)
		conditions += id_filter(
			filter,
			'sticker_ids',
			self.sticker_placements.c.sticker_id,
		)

		statement = self.sticker_placements.select()
		if conditions:
			statement = statement.where(and_(*conditions))
		return statement
Example #5
0
	def prepare_stickers_search_statement(self, filter):
		conditions = []
		conditions += id_filter(filter, 'ids', self.stickers.c.id)
		conditions += time_cutoff_filter(
			filter,
			'created',
			self.stickers.c.creation_time,
		)
		conditions += string_like_filter(
			filter,
			'name',
			self.stickers.c.name,
		)
		conditions += string_like_filter(
			filter,
			'display',
			self.stickers.c.display,
		)
		conditions += string_equal_filter(
			filter,
			'category',
			self.stickers.c.category,
		)
		conditions += bitwise_filter(
			filter,
			'group_bits',
			self.stickers.c.group_bits,
		)

		statement = self.stickers.select()
		if conditions:
			statement = statement.where(and_(*conditions))
		return statement
Example #6
0
	def prepare_collected_stickers_search_statement(self, filter):
		conditions = []
		conditions += id_filter(filter, 'ids', self.collected_stickers.c.id)
		conditions += time_cutoff_filter(
			filter,
			'received',
			self.collected_stickers.c.receive_time,
		)
		conditions += id_filter(
			filter,
			'user_ids',
			self.collected_stickers.c.user_id,
		)
		conditions += id_filter(
			filter,
			'sticker_ids',
			self.collected_stickers.c.sticker_id,
		)

		statement = self.collected_stickers.select()
		if conditions:
			statement = statement.where(and_(*conditions))
		return statement
Example #7
0
    def prepare_members_search_statement(self, filter):
        conditions = []
        conditions += id_filter(filter, 'ids', self.members.c.id)
        conditions += id_filter(filter, 'client_ids', self.members.c.client_id)
        conditions += int_equal_filter(
            filter,
            'campaign_ids',
            self.members.c.campaign_id,
        )
        conditions += int_equal_filter(
            filter,
            'tier_ids',
            self.members.c.tier_id,
        )
        conditions += int_equal_filter(
            filter,
            'user_ids',
            self.members.c.user_id,
        )
        conditions += int_cutoff_filter(
            filter,
            'amount_cents_less_than',
            'amount_cents_more_than',
            self.members.c.amount_cents,
        )
        conditions += time_cutoff_filter(
            filter,
            'last_fulfilled',
            self.members.c.last_fulfill_time,
        )
        conditions += time_cutoff_filter(
            filter,
            'last_charged',
            self.members.c.last_charge_time,
        )
        conditions += string_equal_filter(
            filter,
            'last_charge_status',
            self.members.c.last_charge_status,
        )
        conditions += int_cutoff_filter(
            filter,
            'lifetime_support_cents_less_than',
            'lifetime_support_cents_more_than',
            self.members.c.lifetime_support_cents,
        )
        conditions += time_cutoff_filter(
            filter,
            'pledged',
            self.members.c.pledge_relationship_start_time,
        )
        conditions += string_like_filter(
            filter,
            'names',
            self.members.c.name,
        )
        if 'charged_after_fulfilled' in filter:
            conditions += [
                self.members.c.last_charge_time >
                self.members.c.last_fulfill_time
            ]

        statement = self.members.select()
        if conditions:
            statement = statement.where(and_(*conditions))
        return statement