Module: Parse::API::Hooks

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

Overview

Defines the Parse webhooks interface for the Parse REST API

Constant Summary collapse

TRIGGER_NAMES =

The allowed set of Parse triggers.

[:afterDelete, :afterFind, :afterSave, :beforeDelete, :beforeFind, :beforeSave].freeze

Instance Method Summary collapse

Instance Method Details

#create_function(functionName, url) ⇒ Parse::Response

Register a cloud code webhook function pointing to a endpoint url.

Parameters:

  • functionName (String)

    the name of the cloud code function.

  • url (String)

    the url endpoint for this cloud code function.

Returns:


39
40
41
# File 'lib/parse/api/hooks.rb', line 39

def create_function(functionName, url)
  request :post, "#{HOOKS_PREFIX}functions", body: { functionName: functionName, url: url }
end

#create_trigger(triggerName, className, url) ⇒ Parse::Response

Register a new cloud code webhook trigger with an endpoint url.

Parameters:

  • triggerName (String)

    the name of the trigger. (ex. beforeSave, afterSave)

  • className (String)

    the name of the Parse collection for the trigger.

  • url (String)

    the url endpoint for this webhook trigger.

Returns:

See Also:


83
84
85
86
87
# File 'lib/parse/api/hooks.rb', line 83

def create_trigger(triggerName, className, url)
  triggerName = _verify_trigger(triggerName)
  body = { className: className, triggerName: triggerName, url: url }
  request :post, "#{HOOKS_PREFIX}triggers", body: body
end

#delete_function(functionName) ⇒ Parse::Response

Remove a registered cloud code webhook function.

Parameters:

  • functionName (String)

    the name of the cloud code function.

Returns:


56
57
58
# File 'lib/parse/api/hooks.rb', line 56

def delete_function(functionName)
  request :put, "#{HOOKS_PREFIX}functions/#{functionName}", body: { __op: "Delete" }
end

#delete_trigger(triggerName, className) ⇒ Parse::Response

Remove a registered cloud code webhook trigger.

Parameters:

  • triggerName (String)

    the name of the trigger. (ex. beforeSave, afterSave)

  • className (String)

    the name of the Parse collection for the trigger.

Returns:

See Also:


105
106
107
108
# File 'lib/parse/api/hooks.rb', line 105

def delete_trigger(triggerName, className)
  triggerName = _verify_trigger(triggerName)
  request :put, "#{HOOKS_PREFIX}triggers/#{className}/#{triggerName}", body: { __op: "Delete" }
end

#fetch_function(functionName) ⇒ Parse::Response

Fetch information about a specific registered cloud function.

Parameters:

  • functionName (String)

    the name of the cloud code function.

Returns:


31
32
33
# File 'lib/parse/api/hooks.rb', line 31

def fetch_function(functionName)
  request :get, "#{HOOKS_PREFIX}functions/#{functionName}"
end

#fetch_trigger(triggerName, className) ⇒ Parse::Response

Fetch information about a registered webhook trigger.

Parameters:

  • triggerName (String)

    the name of the trigger. (ex. beforeSave, afterSave)

  • className (String)

    the name of the Parse collection for the trigger.

Returns:

See Also:


72
73
74
75
# File 'lib/parse/api/hooks.rb', line 72

def fetch_trigger(triggerName, className)
  triggerName = _verify_trigger(triggerName)
  request :get, "#{HOOKS_PREFIX}triggers/#{className}/#{triggerName}"
end

#functionsParse::Response

Fetch all defined cloud code functions.

Returns:


23
24
25
26
# File 'lib/parse/api/hooks.rb', line 23

def functions
  opts = { cache: false }
  request :get, "#{HOOKS_PREFIX}functions", opts: opts
end

#triggersParse::Response

Get the set of registered triggers.

Returns:


62
63
64
65
# File 'lib/parse/api/hooks.rb', line 62

def triggers
  opts = { cache: false }
  request :get, "#{HOOKS_PREFIX}triggers", opts: opts
end

#update_function(functionName, url) ⇒ Parse::Response

Updated the endpoint url for a registered cloud code webhook function.

Parameters:

  • functionName (String)

    the name of the cloud code function.

  • url (String)

    the new url endpoint for this cloud code function.

Returns:


47
48
49
50
51
# File 'lib/parse/api/hooks.rb', line 47

def update_function(functionName, url)
  # If you add _method => "PUT" to the JSON body,
  # and send it as a POST request and parse will accept it as a PUT.
  request :put, "#{HOOKS_PREFIX}functions/#{functionName}", body: { url: url }
end

#update_trigger(triggerName, className, url) ⇒ Parse::Response

Updated the registered endpoint for this cloud code webhook trigger.

Parameters:

  • triggerName (String)

    the name of the trigger. (ex. beforeSave, afterSave)

  • className (String)

    the name of the Parse collection for the trigger.

  • url (String)

    the new url endpoint for this webhook trigger.

Returns:

See Also:


95
96
97
98
# File 'lib/parse/api/hooks.rb', line 95

def update_trigger(triggerName, className, url)
  triggerName = _verify_trigger(triggerName)
  request :put, "#{HOOKS_PREFIX}triggers/#{className}/#{triggerName}", body: { url: url }
end