<p></p>
<p><b>@AntonKhorev</b> commented on this pull request.</p>
<hr>
<p>In <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4301#discussion_r1367753443">app/controllers/api/user_blocks_controller.rb</a>:</p>
<pre style='color:#555'>> + def create
+ raise OSM::APIBadUserInput, "No user was given" unless params[:user]
+
+ user = User.visible.find_by(:id => params[:user])
+ raise OSM::APINotFoundError unless user
+ raise OSM::APIBadUserInput, "No reason was given" unless params[:reason]
+ raise OSM::APIBadUserInput, "No period was given" unless params[:period]
+
+ period = Integer(params[:period], :exception => false)
+ raise OSM::APIBadUserInput, "Period one is in a wrong format" unless period
+
+ max_period = UserBlock::PERIODS.max
+ raise OSM::APIBadUserInput, "Period must be between 0 and #{max_period}" if period.negative? || period > max_period
+ raise OSM::APIBadUserInput, "Needs_view must be true if provided" unless params[:needs_view].nil? || params[:needs_view] == "true"
+
+ @user_block = UserBlock.create(
</pre>
<blockquote>
<p dir="auto">What should happen if the user to be blocked is already currently blocked? Or if we're trying to POST the same user block twice, and introduce duplicates.</p>
</blockquote>
<p dir="auto">You can create multiple blocks from the web interface.</p>
<p dir="auto">Currently we have two qualitatively different block types: one that requires reading the message and one that doesn't. In the future there might be more types. It might be useful to have multiple active blocks with different periods at the same time.</p>
<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />Reply to this email directly, <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4301#discussion_r1367753443">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAK2OLOXTEQDKQFR3YEO2I3YAPXY3AVCNFSM6AAAAAA6I5FK4GVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTMOJRGI4DGOJWGQ">unsubscribe</a>.<br />You are receiving this because you are subscribed to this thread.<img src="https://github.com/notifications/beacon/AAK2OLJQEC3BK5HPQDXSVNLYAPXY3A5CNFSM6AAAAAA6I5FK4GWGG33NNVSW45C7OR4XAZNRKB2WY3CSMVYXKZLTORJGK5TJMV32UY3PNVWWK3TUL5UWJTTEZ3Y7Y.gif" height="1" width="1" alt="" /><span style="color: transparent; font-size: 0; display: none; visibility: hidden; overflow: hidden; opacity: 0; width: 0; height: 0; max-width: 0; max-height: 0; mso-hide: all">Message ID: <span><openstreetmap/openstreetmap-website/pull/4301/review/1691283964</span><span>@</span><span>github</span><span>.</span><span>com></span></span></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/openstreetmap/openstreetmap-website/pull/4301#discussion_r1367753443",
"url": "https://github.com/openstreetmap/openstreetmap-website/pull/4301#discussion_r1367753443",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>