Sha256: d396f82d99e04504217eeb3585fb9b08e74cd81133963bde2ba095fbe194e186
Contents?: true
Size: 1.27 KB
Versions: 5
Compression:
Stored size: 1.27 KB
Contents
# encoding: UTF-8 require_relative "service" require_relative "query_template" require_relative "../entities/node" module Clerq module Services # Creates new node in repository according to provided parameters # or raises CreateNode::Failure when # * template not found # * or repository contains a node with the same id class CreateNode < Service def call @body = QueryTemplate.(@template) if @body.empty? && !@template.empty? @node = Clerq::Entities::Node.new( id: @id, title: @title, body: @body, meta: @meta) Clerq.node_repository.save(@node) end protected def initialize(id: '', title: '', body: '', meta: {}, template: '') raise ArgumentError, "Invalid argument :id" unless id.is_a? String raise ArgumentError, "Invalid argument :title" unless title.is_a? String raise ArgumentError, "Invalid argument :body" unless body.is_a? String raise ArgumentError, "Invalid argument :meta" unless meta.is_a? Hash raise ArgumentError, "Invalid argument :template" unless template.is_a? String @id = id @title = title @body = body @meta = meta @template = template end end end end
Version data entries
5 entries across 5 versions & 1 rubygems