lib/moysklad/resources/base.rb in moysklad-0.1.2 vs lib/moysklad/resources/base.rb in moysklad-0.1.3
- old
+ new
@@ -1,39 +1,67 @@
class Moysklad::Resources::Base
PREFIX_PATH = 'exchange/rest/ms/xml/'
- def self.inherited superclass
+ def self.inherited superclass
super
Moysklad::Resources.register_resource superclass
end
+ # Возвращает этот-же ресурс только индексированный
+ #
+ # @return [Moysklad::Resources::Indexed]
def self.indexed *args
Moysklad::Resources::Indexed.new new(*args)
end
# https://support.moysklad.ru/hc/ru/articles/203404253-REST-сервис-синхронизации-данных
def initialize client: nil
raise "Должен быть Moysklad::Client" unless client.is_a? Moysklad::Client
@client = client
end
+ # Возвращает список элементов как есть
+ #
+ # @return Array[Moysklad::Entities::Base]
def list params={}
parse client.get list_path, params
end
- def collection params={}
- parse_collection client.get list_path, params
+ # Возвращает страницу со списком элементов
+ #
+ # @return [Moysklad::Entities::Page]
+ def page params={}
+ parse_page client.get list_path, params
end
+ # Забираем элемент по uuid
+ #
+ # @return [Moysklad::Entities::Base]
def get uuid
parse client.get item_path uuid
end
- def create resource
- parse client.put create_path, prepare_resource(resource)
+ # Модифицируем элемент по uuid
+ #
+ # @return [Moysklad::Entities::Base]
+ def update model
+ create model
end
+ # Создаем запись
+ #
+ # @param [Moysklad::Entities::Base]
+ #
+ # @return [Moysklad::Entities::Base] созданная и возвращенная с сервера сущность
+ def create model
+ raise "Должна быть модель типа Moysklad::Entities::Base" unless model.is_a? Moysklad::Entities::Bae
+ parse client.put create_path, prepare_resource(model)
+ end
+
+ # Удаляем запись по uuid
+ #
+ # @param uuid
def delete uuid
client.delete item_path uuid
end
def self.type
@@ -62,10 +90,10 @@
def parse content
self.class.entity_class.parse content
end
- def parse_collection content
+ def parse_page content
col = Moysklad::Entities::Collection.parse content
# TODO Парсится два раза. Оптимизировать. Например сделать динамические CollectionFeature
# и парсить через них