summaryrefslogblamecommitdiffstats
path: root/docs/en/gun/1.0/manual/gun.patch/index.html
blob: 54ab78b41246404af6a2c09559a0dd451b3443ae (plain) (tree)





































































































































































































































































































                                                                                                                                                                                                                                                                                                                 
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="Loïc Hoguin based on a design from (Soft10) Pol Cámara">

    <title>Nine Nines: gun:patch(3)</title>

    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic' rel='stylesheet' type='text/css'>
    <link href="/css/99s.css?r=1" rel="stylesheet">

    <link rel="shortcut icon" href="/img/ico/favicon.ico">
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/img/ico/apple-touch-icon-114.png">
    <link rel="apple-touch-icon-precomposed" sizes="72x72" href="/img/ico/apple-touch-icon-72.png">
    <link rel="apple-touch-icon-precomposed" href="/img/ico/apple-touch-icon-57.png">

    
</head>


<body class="">
  <header id="page-head">
    <div id="topbar" class="container">
        <div class="row">
          <div class="span2">
            <h1 id="logo"><a href="/" title="99s">99s</a></h1>
          </div>
          <div class="span10">
            
            <div id="side-header">
              <nav>
                <ul>
                  <li><a title="Hear my thoughts" href="/articles">Articles</a></li>
  				  <li><a title="Watch my talks" href="/talks">Talks</a></li>
  				  <li class="active"><a title="Read the docs" href="/docs">Documentation</a></li>
  				  <li><a title="Request my services" href="/services">Consulting & Training</a></li>
                </ul>
              </nav> 
              <ul id="social">
                <li>
                  <a href="https://github.com/ninenines" title="Check my Github repositories"><img src="/img/ico_github.png" data-hover="/img/ico_github_alt.png" alt="Github"></a>
                </li>
                    <li>
						<a title="Contact me" href="mailto:[email protected]"><img src="/img/ico_mail.png" data-hover="/img/ico_mail_alt.png"></a>
					</li>
              </ul>
            </div>
          </div>
        </div>
    </div>


</header>

<div id="contents" class="two_col">
<div class="container">
<div class="row">
<div id="docs" class="span9 maincol">

<h1 class="lined-header"><span>gun:patch(3)</span></h1>

<div class="sect1">
<h2 id="_name">Name</h2>
<div class="sectionbody">
<div class="paragraph"><p>gun:patch - Apply a set of changes to a resource</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_description">Description</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content"><!-- Generator: GNU source-highlight
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><span style="font-weight: bold"><span style="color: #000000">patch</span></span>(<span style="color: #009900">ConnPid</span>, <span style="color: #009900">Path</span>, <span style="color: #009900">Headers</span>)
    <span style="color: #990000">-&gt;</span> <span style="color: #009900">StreamRef</span>

<span style="font-weight: bold"><span style="color: #000000">patch</span></span>(<span style="color: #009900">ConnPid</span>, <span style="color: #009900">Path</span>, <span style="color: #009900">Headers</span>, <span style="color: #009900">Body</span>)
    <span style="color: #990000">-&gt;</span> <span style="font-weight: bold"><span style="color: #000000">patch</span></span>(<span style="color: #009900">ConnPid</span>, <span style="color: #009900">Path</span>, <span style="color: #009900">Headers</span>, <span style="color: #009900">Body</span>, #{})

<span style="font-weight: bold"><span style="color: #000000">patch</span></span>(<span style="color: #009900">ConnPid</span>, <span style="color: #009900">Path</span>, <span style="color: #009900">Headers</span>, <span style="color: #009900">Body</span>, <span style="color: #009900">ReqOpts</span>)
    <span style="color: #990000">-&gt;</span> <span style="color: #009900">StreamRef</span>

<span style="color: #009900">ConnPid</span>   <span style="color: #990000">::</span> <span style="font-weight: bold"><span style="color: #000080">pid</span></span>()
<span style="color: #009900">Path</span>      <span style="color: #990000">::</span> <span style="font-weight: bold"><span style="color: #000000">iodata</span></span>()
<span style="color: #009900">Headers</span>   <span style="color: #990000">::</span> [{<span style="font-weight: bold"><span style="color: #000080">binary</span></span>(), <span style="font-weight: bold"><span style="color: #000000">iodata</span></span>()}]
<span style="color: #009900">Body</span>      <span style="color: #990000">::</span> <span style="font-weight: bold"><span style="color: #000000">iodata</span></span>()
<span style="color: #009900">ReqOpts</span>   <span style="color: #990000">::</span> <span style="font-weight: bold"><span style="color: #000000">gun:req_opts</span></span>()
<span style="color: #009900">StreamRef</span> <span style="color: #990000">::</span> <span style="font-weight: bold"><span style="color: #000080">reference</span></span>()</tt></pre></div></div>
<div class="paragraph"><p>Apply a set of changes to a resource.</p></div>
<div class="paragraph"><p>The behavior of this function varies depending on whether
a body is provided.</p></div>
<div class="paragraph"><p>The function <code>patch/3</code> expects either a content-length
or content-type header to indicate that a body will be
sent afterwards. The body can then be sent using
<a href="../gun.data">gun:data(3)</a>.</p></div>
<div class="paragraph"><p>The function <code>patch/4,5</code> sends the entire request, including
the request body, immediately. It is therefore not possible
to use <a href="../gun.data">gun:data(3)</a> after that. You
should provide a content-type header. Gun will set the
content-length header automatically.</p></div>
<div class="paragraph"><p>The body sent in this request should be a patch document
with instructions on how to update the resource.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_arguments">Arguments</h2>
<div class="sectionbody">
<div class="dlist"><dl>
<dt class="hdlist1">
ConnPid
</dt>
<dd>
<p>
The pid of the Gun connection process.
</p>
</dd>
<dt class="hdlist1">
Path
</dt>
<dd>
<p>
Path to the resource.
</p>
</dd>
<dt class="hdlist1">
Headers
</dt>
<dd>
<p>
Additional request headers.
</p>
</dd>
<dt class="hdlist1">
Body
</dt>
<dd>
<p>
Request body.
</p>
</dd>
<dt class="hdlist1">
ReqOpts
</dt>
<dd>
<p>
Request options.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="_return_value">Return value</h2>
<div class="sectionbody">
<div class="paragraph"><p>A reference that identifies the newly created stream is
returned. It is this reference that must be passed in
subsequent calls and will be received in messages related
to this new stream.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_changelog">Changelog</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
<strong>1.0</strong>: Function introduced.
</p>
</li>
</ul></div>
</div>
</div>
<div class="sect1">
<h2 id="_examples">Examples</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="title">Patch a resource</div>
<div class="content"><!-- Generator: GNU source-highlight
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><span style="color: #009900">StreamRef</span> <span style="color: #990000">=</span> <span style="font-weight: bold"><span style="color: #000000">gun:patch</span></span>(<span style="color: #009900">ConnPid</span>, <span style="color: #FF0000">"/users/1"</span>,
    [{<span style="color: #990000">&lt;&lt;</span><span style="color: #FF0000">"content-type"</span><span style="color: #990000">&gt;&gt;</span>, <span style="color: #990000">&lt;&lt;</span><span style="color: #FF0000">"application/json-patch+json"</span><span style="color: #990000">&gt;&gt;</span>}],
    <span style="color: #990000">&lt;&lt;</span><span style="color: #FF0000">"[{\"op\":\"add\",\"path\":\"/baz\",\"value\":\"qux\"}]"</span><span style="color: #990000">&gt;&gt;</span>)<span style="color: #990000">.</span></tt></pre></div></div>
<div class="listingblock">
<div class="title">Patch a resource in multiple calls</div>
<div class="content"><!-- Generator: GNU source-highlight
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><span style="color: #009900">StreamRef</span> <span style="color: #990000">=</span> <span style="font-weight: bold"><span style="color: #000000">gun:patch</span></span>(<span style="color: #009900">ConnPid</span>, <span style="color: #FF0000">"/users/1"</span>, [
    {<span style="color: #990000">&lt;&lt;</span><span style="color: #FF0000">"content-type"</span><span style="color: #990000">&gt;&gt;</span>, <span style="color: #990000">&lt;&lt;</span><span style="color: #FF0000">"application/json-patch+json"</span><span style="color: #990000">&gt;&gt;</span>}
])<span style="color: #990000">.</span>
<span style="font-weight: bold"><span style="color: #000000">gun:data</span></span>(<span style="color: #009900">ConnPid</span>, <span style="color: #009900">StreamRef</span>, <span style="color: #FF6600">fin</span>,
    <span style="color: #990000">&lt;&lt;</span><span style="color: #FF0000">"[{\"op\":\"add\",\"path\":\"/baz\",\"value\":\"qux\"}]"</span><span style="color: #990000">&gt;&gt;</span>)<span style="color: #990000">.</span></tt></pre></div></div>
<div class="listingblock">
<div class="title">Patch a resource with request options</div>
<div class="content"><!-- Generator: GNU source-highlight
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><span style="color: #009900">StreamRef</span> <span style="color: #990000">=</span> <span style="font-weight: bold"><span style="color: #000000">gun:patch</span></span>(<span style="color: #009900">ConnPid</span>, <span style="color: #FF0000">"/users/1"</span>,
    [{<span style="color: #990000">&lt;&lt;</span><span style="color: #FF0000">"content-type"</span><span style="color: #990000">&gt;&gt;</span>, <span style="color: #990000">&lt;&lt;</span><span style="color: #FF0000">"application/json-patch+json"</span><span style="color: #990000">&gt;&gt;</span>}],
    <span style="color: #990000">&lt;&lt;</span><span style="color: #FF0000">"[{\"op\":\"add\",\"path\":\"/baz\",\"value\":\"qux\"}]"</span><span style="color: #990000">&gt;&gt;</span>,
    #{<span style="color: #0000FF">reply_to</span> <span style="color: #990000">=&gt;</span> <span style="color: #009900">ReplyToPid</span>})<span style="color: #990000">.</span></tt></pre></div></div>
</div>
</div>
<div class="sect1">
<h2 id="_see_also">See also</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="../gun">gun(3)</a>,
<a href="../gun.post">gun:post(3)</a>,
<a href="../gun.put">gun:put(3)</a>,
<a href="../gun.await">gun:await(3)</a>,
<a href="../gun.await_body">gun:await_body(3)</a>,
<a href="../gun_push">gun_push(3)</a>,
<a href="../gun_inform">gun_inform(3)</a>,
<a href="../gun_response">gun_response(3)</a>,
<a href="../gun_data">gun_data(3)</a></p></div>
</div>
</div>





</div>

<div class="span3 sidecol">


<h3>
	Gun
	1.0
	Function Reference
	
</h3>

<ul>
	
		<li><a href="/docs/en/gun/1.0/guide">User Guide</a></li>
	
	
		<li><a href="/docs/en/gun/1.0/manual">Function Reference</a></li>
	
	
</ul>

<h4 id="docs-nav">Navigation</h4>

<h4>Version select</h4>
<ul>
	
	
	
		<li><a href="/docs/en/gun/1.0/manual">1.0</a></li>
	
</ul>

</div>
</div>
</div>
</div>

      <footer>
        <div class="container">
          <div class="row">
            <div class="span6">
              <p id="scroll-top"><a href="#">↑ Scroll to top</a></p>
              <nav>
                <ul>
                  <li><a href="mailto:[email protected]" title="Contact us">Contact us</a></li><li><a href="https://github.com/ninenines/ninenines.github.io" title="Github repository">Contribute to this site</a></li>
                </ul>
              </nav>
            </div>
            <div class="span6 credits">
               <p><img src="/img/footer_logo.png"></p>
               <p>Copyright &copy; Loïc Hoguin 2012-2018</p>
            </div>
          </div>
        </div>
      </footer>

    
    <script src="/js/custom.js"></script>
  </body>
</html>