class Moysklad::Resources::Base

Constants

PREFIX_PATH

Attributes

client[R]

Public Class Methods

indexed(client: nil, list_path: nil) click to toggle source

Возвращает этот-же ресурс только индексированный

@return [Moysklad::Resources::Indexed]

# File lib/moysklad/resources/base.rb, line 14
def self.indexed client: nil, list_path: nil
  Moysklad::Resources::Indexed.new new(client: client, list_path: list_path)
end
inherited(superclass) click to toggle source
Calls superclass method
# File lib/moysklad/resources/base.rb, line 6
def self.inherited superclass
  super
  Moysklad::Resources.register_resource superclass
end
new(client: nil, list_path: nil) click to toggle source

support.moysklad.ru/hc/ru/articles/203404253-REST-сервис-синхронизации-данных

# File lib/moysklad/resources/base.rb, line 19
def initialize client: nil, list_path: nil
  @list_path = list_path
  raise "Должен быть Moysklad::Client" unless client.is_a? Moysklad::Client
  @client = client
end
pluralized_type() click to toggle source
# File lib/moysklad/resources/base.rb, line 73
def self.pluralized_type
  ActiveSupport::Inflector.underscore ActiveSupport::Inflector.pluralize type
end
type() click to toggle source
# File lib/moysklad/resources/base.rb, line 69
def self.type
  ActiveSupport::Inflector.singularize name.split('::').last.to_sym
end

Public Instance Methods

create(model) click to toggle source

Создаем запись

@param [Moysklad::Entities::Base]

Возвращается созданная на сервере сущность

@return [Moysklad::Entities::Base]

# File lib/moysklad/resources/base.rb, line 57
def create model
  raise "Должна быть модель типа Moysklad::Entities::Base" unless model.is_a? Moysklad::Entities::Base
  parse_get client.post create_path, model.to_json
end
delete(uuid) click to toggle source

Удаляем запись по uuid

@param uuid

# File lib/moysklad/resources/base.rb, line 65
def delete uuid
  client.delete item_path uuid
end
get(uuid, params = {}) click to toggle source

Забираем элемент по uuid

@return [Moysklad::Entities::Base]

# File lib/moysklad/resources/base.rb, line 39
def get uuid, params = {}
  parse_get client.get item_path(uuid), params
end
list(params={}) click to toggle source

Возвращает список элементов как есть

@return [Array of Moysklad::Entities::Base]

# File lib/moysklad/resources/base.rb, line 32
def list params={}
  load_collection client.get list_path, params
end
metadata() click to toggle source
# File lib/moysklad/resources/base.rb, line 25
def metadata
  Moysklad::Entities::ResourceMetadata.build client.get(metadata_path), self
end
update(model) click to toggle source

Модифицируем элемент по uuid

@return [Moysklad::Entities::Base]

# File lib/moysklad/resources/base.rb, line 46
def update model
  create model
end

Private Instance Methods

collection_class() click to toggle source
# File lib/moysklad/resources/base.rb, line 105
def collection_class
  Moysklad::Entities::Collection
end
create_path() click to toggle source
# File lib/moysklad/resources/base.rb, line 93
def create_path
  prefix_path
end
entity_class() click to toggle source
# File lib/moysklad/resources/base.rb, line 109
def entity_class
  ActiveSupport::Inflector.constantize "Moysklad::Entities::#{self.class.type.to_s}"
end
item_path(uuid) click to toggle source
# File lib/moysklad/resources/base.rb, line 89
def item_path uuid
  prefix_path + '/' + uuid
end
list_path() click to toggle source
# File lib/moysklad/resources/base.rb, line 97
def list_path
  @list_path ||= prefix_path
end
load_collection(data) click to toggle source
# File lib/moysklad/resources/base.rb, line 85
def load_collection data
  collection_class.build data, self
end
metadata_path() click to toggle source
# File lib/moysklad/resources/base.rb, line 101
def metadata_path
  prefix_path + '/metadata'
end
parse_get(data) click to toggle source
# File lib/moysklad/resources/base.rb, line 81
def parse_get data
  entity_class.build data, self
end
prefix_path() click to toggle source
# File lib/moysklad/resources/base.rb, line 113
def prefix_path
  PREFIX_PATH + self.class.type.downcase
end