Class: Mailbluster::ResourceType

Inherits:
Object
  • Object
show all
Defined in:
lib/mailbluster/resource_type.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client, resource_type) ⇒ ResourceType

Returns a new instance of ResourceType.



5
6
7
8
# File 'lib/mailbluster/resource_type.rb', line 5

def initialize(client, resource_type)
  @client = client
  @resource_type = resource_type
end

Instance Attribute Details

#resource_typeObject (readonly)

Returns the value of attribute resource_type.



3
4
5
# File 'lib/mailbluster/resource_type.rb', line 3

def resource_type
  @resource_type
end

Instance Method Details

#create(new_attributes) ⇒ Object



14
15
16
17
# File 'lib/mailbluster/resource_type.rb', line 14

def create(new_attributes)
  raw_resource_attributes = @client.post(resource_type, new_attributes)
  Resource.new(self, raw_resource_attributes[singular_resource_type] || raw_resource_attributes)
end

#delete(id_or_email_md5) ⇒ Object



36
37
38
39
40
# File 'lib/mailbluster/resource_type.rb', line 36

def delete(id_or_email_md5)
  id_or_email_md5 = Utils.md5(id_or_email_md5) if lead? && id_or_email_md5.include?("@")
  @client.delete("#{resource_type}/#{id_or_email_md5}")
  id_or_email_md5
end

#inspectObject



10
11
12
# File 'lib/mailbluster/resource_type.rb', line 10

def inspect
  "#<Mailbluster::ResourceType::#{singular_resource_type.capitalize}>"
end

#lead?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/mailbluster/resource_type.rb', line 42

def lead?
  resource_type == "leads"
end

#read(id_or_email_md5 = "") ⇒ Object



19
20
21
22
23
24
25
26
27
28
# File 'lib/mailbluster/resource_type.rb', line 19

def read(id_or_email_md5 = "")
  id_or_email_md5 = Utils.md5(id_or_email_md5) if lead? && id_or_email_md5.include?("@")
  if id_or_email_md5.is_a?(Hash)
    query_params = query_parameterize(id_or_email_md5)
    id_or_email_md5 = ""
  end
  raw_resource_attributes = @client.get("#{resource_type}/#{id_or_email_md5}",
                                        query_params: query_params)
  map_to_resource(id_or_email_md5, raw_resource_attributes)
end

#update(id_or_email_md5, new_attributes) ⇒ Object



30
31
32
33
34
# File 'lib/mailbluster/resource_type.rb', line 30

def update(id_or_email_md5, new_attributes)
  id_or_email_md5 = Utils.md5(id_or_email_md5) if lead? && id_or_email_md5.include?("@")
  raw_resource_attributes = @client.put("#{resource_type}/#{id_or_email_md5}", new_attributes)
  Resource.new(self, raw_resource_attributes[singular_resource_type] || raw_resource_attributes)
end