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 # и парсить через них