Module: Parse::API::Aggregate

Included in:
Client
Defined in:
lib/parse/api/aggregate.rb

Overview

REST API methods for fetching CRUD operations on Parse objects.

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#aggregate_objects(className, query = {}, headers: {}, **opts) ⇒ Parse::Response

Aggregate a set of matching objects for a query.

Parameters:

  • className (String)

    the name of the Parse collection.

  • query (Hash) (defaults to: {})

    The set of query constraints.

  • opts (Hash)

    additional options to pass to the Client request.

  • headers (Hash) (defaults to: {})

    additional HTTP headers to send with the request.

Returns:

See Also:



58
59
60
61
62
# File 'lib/parse/api/aggregate.rb', line 58

def aggregate_objects(className, query = {}, headers: {}, **opts)
  response = request :get, aggregate_uri_path(className), query: query, headers: headers, opts: opts
  response.parse_class = className if response.present?
  response
end

#aggregate_pipeline(className, pipeline = [], headers: {}, **opts) ⇒ Parse::Response

Execute a MongoDB-style aggregation pipeline on a Parse collection.

Parameters:

  • className (String)

    the name of the Parse collection.

  • pipeline (Array) (defaults to: [])

    the MongoDB aggregation pipeline stages.

  • opts (Hash)

    additional options to pass to the Client request.

  • headers (Hash) (defaults to: {})

    additional HTTP headers to send with the request.

Returns:

See Also:



71
72
73
74
75
76
# File 'lib/parse/api/aggregate.rb', line 71

def aggregate_pipeline(className, pipeline = [], headers: {}, **opts)
  query = { pipeline: pipeline.to_json }
  response = request :get, aggregate_uri_path(className), query: query, headers: headers, opts: opts
  response.parse_class = className if response.present?
  response
end

#aggregate_uri_path(className) ⇒ String

Get the API path for this class.

Parameters:

  • className (String)

    the name of the Parse collection.

Returns:

  • (String)

    the API uri path



47
48
49
# File 'lib/parse/api/aggregate.rb', line 47

def aggregate_uri_path(className)
  self.class.aggregate_uri_path(className)
end