Sha256: cbc4586b4b990f59e6cbd5c28c0c8348b27d643ac4a1e752e82e6272b4dcd426

Contents?: true

Size: 1.49 KB

Versions: 4

Compression:

Stored size: 1.49 KB

Contents

# frozen_string_literal: true
class Zendesk2::CreateHelpCenterSubscription
  include Zendesk2::Request
  include Zendesk2::HelpCenter::SubscriptionRequest

  request_method :post
  request_path { |r| "/#{r.route_prefix}/#{r.plural_content_type}/#{r.content_id}/subscriptions.json" }
  request_body do |r|
    { 'subscription' => r.subscription_params } if r.subscription_params.any?
  end

  def subscription_params
    return @subscription_params if @subscription_params
    body = Cistern::Hash.slice(subscription, *self.class.accepted_attributes(content_type))
    body['source_locale'] = body.delete('locale') if body['locale']
    @subscription_params = body
  end

  def mock
    identity = cistern.serial_id

    url = url_for("/help_center/#{plural_content_type}/#{content_id}/subscription.json")

    content_collection = "help_center_#{plural_content_type}".to_sym
    find!(content_collection, content_id)

    if subscription_params.empty?
      mock_response('Required parameter missing: subscription', status: 400)
    end

    record = subscription_params.merge(
      'id'           => identity,
      'url'          => url,
      'created_at'   => timestamp, # @todo create #timestamp helper
      'updated_at'   => timestamp,
      'content_id'   => content_id,
      'content_type' => content_type,
    )

    record['locale'] = record.delete('source_locale') if record['source_locale']

    cistern.data[:help_center_subscriptions][identity] = record

    mock_response('subscription' => record)
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
zendesk2-1.15.0 lib/zendesk2/help_center/create_help_center_subscription.rb
zendesk2-1.13.1 lib/zendesk2/help_center/create_help_center_subscription.rb
zendesk2-1.13.0 lib/zendesk2/help_center/create_help_center_subscription.rb
zendesk2-1.12.0 lib/zendesk2/help_center/create_help_center_subscription.rb