Module: Quickbooks::Service::ServiceCrud

Instance Method Summary collapse

Instance Method Details

#create(entity, options = {}) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'lib/quickbooks/service/service_crud.rb', line 14

def create(entity, options = {})
  raise Quickbooks::InvalidModelException.new(entity.errors.full_messages.join(',')) unless entity.valid?
  xml = entity.to_xml_ns(options)
  response = do_http_post(url_for_resource(model.resource_for_singular), valid_xml_document(xml))
  if response.code.to_i == 200
    model.from_xml(parse_singular_entity_response(model, response.plain_body))
  else
    nil
  end
end

#delete(entity) ⇒ Object



25
26
27
# File 'lib/quickbooks/service/service_crud.rb', line 25

def delete(entity)
  raise "Not implemented for this Entity"
end

#delete_by_query_string(entity, options = {}) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/quickbooks/service/service_crud.rb', line 29

def delete_by_query_string(entity, options = {})
  url = "#{url_for_resource(model::REST_RESOURCE)}?operation=delete"

  xml = entity.to_xml_ns(options)
  response = do_http_post(url, valid_xml_document(xml))
  if response.code.to_i == 200
    parse_singular_entity_response_for_delete(model, response.plain_body)
  else
    false
  end
end

#fetch_by_id(id, options = {}) ⇒ Object



9
10
11
12
# File 'lib/quickbooks/service/service_crud.rb', line 9

def fetch_by_id(id, options = {})
  url = "#{url_for_resource(model.resource_for_singular)}/#{id}"
  fetch_object(model, url, options)
end

#query(object_query = nil, options = {}) ⇒ Object



5
6
7
# File 'lib/quickbooks/service/service_crud.rb', line 5

def query(object_query = nil, options = {})
  fetch_collection(object_query, model, options)
end

#update(entity, options = {}) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/quickbooks/service/service_crud.rb', line 41

def update(entity, options = {})
  unless entity.valid?
    raise Quickbooks::InvalidModelException.new(entity.errors.full_messages.join(','))
  end

  xml = entity.to_xml_ns(options)
  response = do_http_post(url_for_resource(model.resource_for_singular), valid_xml_document(xml))
  if response.code.to_i == 200
    model.from_xml(parse_singular_entity_response(model, response.plain_body))
  else
    nil
  end
end