kabk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +20 -0
  3. data/Gemfile +6 -0
  4. data/Gemfile.lock +105 -0
  5. data/Kabk_logo.svg +33 -0
  6. data/LICENSE +21 -0
  7. data/README.md +112 -0
  8. data/doc/Kabk/Adapters/Base.html +989 -0
  9. data/doc/Kabk/Adapters/SequelAdapter.html +1071 -0
  10. data/doc/Kabk/Adapters.html +120 -0
  11. data/doc/Kabk/ApiError.html +511 -0
  12. data/doc/Kabk/Auth/JwtStrategy.html +551 -0
  13. data/doc/Kabk/Auth.html +118 -0
  14. data/doc/Kabk/Concurrency.html +297 -0
  15. data/doc/Kabk/ConcurrencyConflictError.html +234 -0
  16. data/doc/Kabk/Error.html +140 -0
  17. data/doc/Kabk/ExportHandler.html +381 -0
  18. data/doc/Kabk/Field.html +2160 -0
  19. data/doc/Kabk/ForbiddenError.html +234 -0
  20. data/doc/Kabk/InvalidFieldError.html +145 -0
  21. data/doc/Kabk/InvalidOldPasswordError.html +234 -0
  22. data/doc/Kabk/NotFoundError.html +234 -0
  23. data/doc/Kabk/QueryBuilder.html +701 -0
  24. data/doc/Kabk/Registry.html +608 -0
  25. data/doc/Kabk/RelationHydrator.html +480 -0
  26. data/doc/Kabk/Resource.html +1986 -0
  27. data/doc/Kabk/ResourceBuilder.html +1002 -0
  28. data/doc/Kabk/RestEngine.html +887 -0
  29. data/doc/Kabk/SchemaRenderer.html +318 -0
  30. data/doc/Kabk/UnauthorizedError.html +234 -0
  31. data/doc/Kabk/UploadHandler.html +308 -0
  32. data/doc/Kabk/ValidationError.html +234 -0
  33. data/doc/Kabk/Validator.html +802 -0
  34. data/doc/Kabk.html +330 -0
  35. data/doc/_index.html +369 -0
  36. data/doc/class_list.html +54 -0
  37. data/doc/css/common.css +1 -0
  38. data/doc/css/full_list.css +206 -0
  39. data/doc/css/style.css +1089 -0
  40. data/doc/file.README.html +162 -0
  41. data/doc/file_list.html +59 -0
  42. data/doc/frames.html +22 -0
  43. data/doc/index.html +162 -0
  44. data/doc/js/app.js +801 -0
  45. data/doc/js/full_list.js +334 -0
  46. data/doc/js/jquery.js +4 -0
  47. data/doc/method_list.html +982 -0
  48. data/doc/top-level-namespace.html +112 -0
  49. data/docs/API_REFERENCE.md +255 -0
  50. data/lib/kabk/adapters/base.rb +53 -0
  51. data/lib/kabk/adapters/sequel_adapter.rb +138 -0
  52. data/lib/kabk/concurrency.rb +30 -0
  53. data/lib/kabk/errors.rb +68 -0
  54. data/lib/kabk/field.rb +97 -0
  55. data/lib/kabk/query_builder.rb +103 -0
  56. data/lib/kabk/registry.rb +41 -0
  57. data/lib/kabk/relation_hydrator.rb +107 -0
  58. data/lib/kabk/resource.rb +88 -0
  59. data/lib/kabk/resource_builder.rb +95 -0
  60. data/lib/kabk/rest_engine.rb +120 -0
  61. data/lib/kabk/schema_renderer.rb +69 -0
  62. data/lib/kabk/upload_handler.rb +24 -0
  63. data/lib/kabk/validator.rb +121 -0
  64. data/lib/kabk/version.rb +6 -0
  65. data/lib/kabk.rb +50 -0
  66. metadata +178 -0
@@ -0,0 +1,1071 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Class: Kabk::Adapters::SequelAdapter
8
+
9
+ &mdash; Documentation by YARD 0.9.45
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../css/style.css" type="text/css">
14
+
15
+ <link rel="stylesheet" href="../../css/common.css" type="text/css">
16
+
17
+ <script type="text/javascript">
18
+ pathId = "Kabk::Adapters::SequelAdapter";
19
+ relpath = '../../';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div id="main_progress" aria-hidden="true"></div>
31
+
32
+ <div class="nav_wrap">
33
+ <iframe id="nav" src="../../class_list.html?1"></iframe>
34
+ <div id="resizer"></div>
35
+ </div>
36
+
37
+ <div id="main" tabindex="-1">
38
+ <div id="header">
39
+ <div id="menu">
40
+
41
+ <a href="../../_index.html">Index (S)</a> &raquo;
42
+ <span class='title'><span class='object_link'><a href="../../Kabk.html" title="Kabk (module)">Kabk</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Adapters.html" title="Kabk::Adapters (module)">Adapters</a></span></span>
43
+ &raquo;
44
+ <span class="title">SequelAdapter</span>
45
+
46
+ </div>
47
+
48
+ <div id="search">
49
+
50
+ <a class="full_list_link" id="class_list_link"
51
+ href="../../class_list.html">
52
+
53
+ <svg width="24" height="24">
54
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
55
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
56
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
57
+ </svg>
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <div id="content"><h1>Class: Kabk::Adapters::SequelAdapter
65
+
66
+
67
+
68
+ </h1>
69
+ <div class="box_info">
70
+
71
+ <dl>
72
+ <dt>Inherits:</dt>
73
+ <dd>
74
+ <span class="inheritName"><span class='object_link'><a href="Base.html" title="Kabk::Adapters::Base (class)">Base</a></span></span>
75
+
76
+ <ul class="fullTree">
77
+ <li>Object</li>
78
+
79
+ <li class="next"><span class='object_link'><a href="Base.html" title="Kabk::Adapters::Base (class)">Base</a></span></li>
80
+
81
+ <li class="next">Kabk::Adapters::SequelAdapter</li>
82
+
83
+ </ul>
84
+ <a href="#" class="inheritanceTree">show all</a>
85
+
86
+ </dd>
87
+ </dl>
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+ <dl>
100
+ <dt>Defined in:</dt>
101
+ <dd>lib/kabk/adapters/sequel_adapter.rb
102
+ </dd>
103
+ </dl>
104
+
105
+ </div>
106
+
107
+ <h2>Overview</h2><div class="docstring">
108
+ <div class="discussion">
109
+ <p>Sequel adapter for Kabk resources</p>
110
+
111
+ </div>
112
+ </div>
113
+ <div class="tags">
114
+
115
+
116
+ </div>
117
+
118
+
119
+
120
+
121
+
122
+ <h2>Instance Attribute Summary</h2>
123
+
124
+ <h3 class="inherited">Attributes inherited from <span class='object_link'><a href="Base.html" title="Kabk::Adapters::Base (class)">Base</a></span></h3>
125
+ <p class="inherited"><span class='object_link'><a href="Base.html#resource-instance_method" title="Kabk::Adapters::Base#resource (method)">#resource</a></span></p>
126
+
127
+
128
+
129
+ <h2>
130
+ Instance Method Summary
131
+ <small><a href="#" class="summary_toggle">collapse</a></small>
132
+ </h2>
133
+
134
+ <ul class="summary">
135
+
136
+ <li class="public ">
137
+ <span class="summary_signature">
138
+
139
+ <a href="#create-instance_method" title="#create (instance method)">#<strong>create</strong>(attributes, context: {}) &#x21d2; Hash </a>
140
+
141
+
142
+
143
+ </span>
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+
153
+ <span class="summary_desc"><div class='inline'><p>Protocol response hash with success, message, data.</p></div></span>
154
+
155
+ </li>
156
+
157
+
158
+ <li class="public ">
159
+ <span class="summary_signature">
160
+
161
+ <a href="#delete-instance_method" title="#delete (instance method)">#<strong>delete</strong>(id, context: {}) &#x21d2; Hash </a>
162
+
163
+
164
+
165
+ </span>
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+ <span class="summary_desc"><div class='inline'><p>Protocol response hash indicating success.</p></div></span>
176
+
177
+ </li>
178
+
179
+
180
+ <li class="public ">
181
+ <span class="summary_signature">
182
+
183
+ <a href="#exists%3F-instance_method" title="#exists? (instance method)">#<strong>exists?</strong>(field_name, value, exclude_id: nil) &#x21d2; Boolean </a>
184
+
185
+
186
+
187
+ </span>
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+ <span class="summary_desc"><div class='inline'></div></span>
198
+
199
+ </li>
200
+
201
+
202
+ <li class="public ">
203
+ <span class="summary_signature">
204
+
205
+ <a href="#get-instance_method" title="#get (instance method)">#<strong>get</strong>(id, context: {}) &#x21d2; Hash </a>
206
+
207
+
208
+
209
+ </span>
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+ <span class="summary_desc"><div class='inline'><p>Protocol response hash with success, data.</p></div></span>
220
+
221
+ </li>
222
+
223
+
224
+ <li class="public ">
225
+ <span class="summary_signature">
226
+
227
+ <a href="#list-instance_method" title="#list (instance method)">#<strong>list</strong>(params, context: {}) &#x21d2; Hash </a>
228
+
229
+
230
+
231
+ </span>
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+ <span class="summary_desc"><div class='inline'><p>Protocol response hash with success, data, meta.</p></div></span>
242
+
243
+ </li>
244
+
245
+
246
+ <li class="public ">
247
+ <span class="summary_signature">
248
+
249
+ <a href="#update-instance_method" title="#update (instance method)">#<strong>update</strong>(id, attributes, context: {}) &#x21d2; Hash </a>
250
+
251
+
252
+
253
+ </span>
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+ <span class="summary_desc"><div class='inline'><p>Protocol response hash with success, message, data.</p></div></span>
264
+
265
+ </li>
266
+
267
+
268
+ </ul>
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+
282
+ <h3 class="inherited">Methods inherited from <span class='object_link'><a href="Base.html" title="Kabk::Adapters::Base (class)">Base</a></span></h3>
283
+ <p class="inherited"><span class='object_link'><a href="Base.html#initialize-instance_method" title="Kabk::Adapters::Base#initialize (method)">#initialize</a></span></p>
284
+ <div id="constructor_details" class="method_details_list">
285
+ <h2>Constructor Details</h2>
286
+
287
+ <p class="notice">This class inherits a constructor from <span class='object_link'><a href="Base.html#initialize-instance_method" title="Kabk::Adapters::Base#initialize (method)">Kabk::Adapters::Base</a></span></p>
288
+
289
+ </div>
290
+
291
+
292
+ <div id="instance_method_details" class="method_details_list">
293
+ <h2>Instance Method Details</h2>
294
+
295
+
296
+ <div class="method_details first">
297
+ <h3 class="signature first" id="create-instance_method">
298
+
299
+ #<strong>create</strong>(attributes, context: {}) &#x21d2; <tt>Hash</tt>
300
+
301
+
302
+
303
+
304
+
305
+ </h3><div class="docstring">
306
+ <div class="discussion">
307
+ <p>Returns Protocol response hash with success, message, data.</p>
308
+
309
+ </div>
310
+ </div>
311
+ <div class="tags">
312
+ <p class="tag_title">Parameters:</p>
313
+ <ul class="param">
314
+
315
+ <li>
316
+
317
+ <span class='name'>attributes</span>
318
+
319
+
320
+ <span class='type'>(<tt>Hash</tt>)</span>
321
+
322
+
323
+
324
+ &mdash;
325
+ <div class='inline'><p>Sanitized attributes</p></div>
326
+
327
+ </li>
328
+
329
+ <li>
330
+
331
+ <span class='name'>context</span>
332
+
333
+
334
+ <span class='type'>(<tt>Hash</tt>)</span>
335
+
336
+
337
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
338
+
339
+
340
+ </li>
341
+
342
+ </ul>
343
+
344
+ <p class="tag_title">Returns:</p>
345
+ <ul class="return">
346
+
347
+ <li>
348
+
349
+
350
+ <span class='type'>(<tt>Hash</tt>)</span>
351
+
352
+
353
+
354
+ &mdash;
355
+ <div class='inline'><p>Protocol response hash with success, message, data</p></div>
356
+
357
+ </li>
358
+
359
+ </ul>
360
+ <p class="tag_title">Raises:</p>
361
+ <ul class="raise">
362
+
363
+ <li>
364
+
365
+
366
+ <span class='type'>(<tt><span class='object_link'><a href="../ApiError.html" title="Kabk::ApiError (class)">ApiError</a></span></tt>)</span>
367
+
368
+
369
+
370
+ &mdash;
371
+ <div class='inline'><p>If unique constraint violated</p></div>
372
+
373
+ </li>
374
+
375
+ </ul>
376
+
377
+ </div><table class="source_code">
378
+ <tr>
379
+ <td>
380
+ <pre class="lines">
381
+
382
+
383
+ 66
384
+ 67
385
+ 68
386
+ 69
387
+ 70
388
+ 71
389
+ 72
390
+ 73
391
+ 74
392
+ 75
393
+ 76
394
+ 77
395
+ 78</pre>
396
+ </td>
397
+ <td>
398
+ <pre class="code"><span class="info file"># File 'lib/kabk/adapters/sequel_adapter.rb', line 66</span>
399
+
400
+ <span class='kw'>def</span> <span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_attributes'>attributes</span><span class='comma'>,</span> <span class='label'>context:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
401
+ <span class='id identifier rubyid_record'>record</span> <span class='op'>=</span> <span class='ivar'>@resource</span><span class='period'>.</span><span class='id identifier rubyid_model_class'>model_class</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_attributes'>attributes</span><span class='rparen'>)</span>
402
+
403
+ <span class='id identifier rubyid_hydrated_records'>hydrated_records</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../RelationHydrator.html" title="Kabk::RelationHydrator (class)">RelationHydrator</a></span></span><span class='period'>.</span><span class='id identifier rubyid_hydrate'><span class='object_link'><a href="../RelationHydrator.html#hydrate-class_method" title="Kabk::RelationHydrator.hydrate (method)">hydrate</a></span></span><span class='lparen'>(</span><span class='ivar'>@resource</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_record'>record</span><span class='rbracket'>]</span><span class='rparen'>)</span>
404
+
405
+ <span class='lbrace'>{</span>
406
+ <span class='label'>success:</span> <span class='kw'>true</span><span class='comma'>,</span>
407
+ <span class='label'>message:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Operation completed successfully</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
408
+ <span class='label'>data:</span> <span class='id identifier rubyid_hydrated_records'>hydrated_records</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
409
+ <span class='rbrace'>}</span>
410
+ <span class='kw'>rescue</span> <span class='const'>Sequel</span><span class='op'>::</span><span class='const'>UniqueConstraintViolation</span>
411
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../ApiError.html" title="Kabk::ApiError (class)">ApiError</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../ApiError.html#initialize-instance_method" title="Kabk::ApiError#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Unique constraint violated</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>code:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>CONFLICT</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>http_status:</span> <span class='int'>409</span><span class='rparen'>)</span>
412
+ <span class='kw'>end</span></pre>
413
+ </td>
414
+ </tr>
415
+ </table>
416
+ </div>
417
+
418
+ <div class="method_details ">
419
+ <h3 class="signature " id="delete-instance_method">
420
+
421
+ #<strong>delete</strong>(id, context: {}) &#x21d2; <tt>Hash</tt>
422
+
423
+
424
+
425
+
426
+
427
+ </h3><div class="docstring">
428
+ <div class="discussion">
429
+ <p>Returns Protocol response hash indicating success.</p>
430
+
431
+ </div>
432
+ </div>
433
+ <div class="tags">
434
+ <p class="tag_title">Parameters:</p>
435
+ <ul class="param">
436
+
437
+ <li>
438
+
439
+ <span class='name'>id</span>
440
+
441
+
442
+ <span class='type'>(<tt>Integer</tt>, <tt>String</tt>)</span>
443
+
444
+
445
+
446
+ &mdash;
447
+ <div class='inline'><p>Primary key</p></div>
448
+
449
+ </li>
450
+
451
+ <li>
452
+
453
+ <span class='name'>context</span>
454
+
455
+
456
+ <span class='type'>(<tt>Hash</tt>)</span>
457
+
458
+
459
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
460
+
461
+
462
+ </li>
463
+
464
+ </ul>
465
+
466
+ <p class="tag_title">Returns:</p>
467
+ <ul class="return">
468
+
469
+ <li>
470
+
471
+
472
+ <span class='type'>(<tt>Hash</tt>)</span>
473
+
474
+
475
+
476
+ &mdash;
477
+ <div class='inline'><p>Protocol response hash indicating success</p></div>
478
+
479
+ </li>
480
+
481
+ </ul>
482
+ <p class="tag_title">Raises:</p>
483
+ <ul class="raise">
484
+
485
+ <li>
486
+
487
+
488
+ <span class='type'>(<tt><span class='object_link'><a href="../NotFoundError.html" title="Kabk::NotFoundError (class)">NotFoundError</a></span></tt>)</span>
489
+
490
+
491
+
492
+ &mdash;
493
+ <div class='inline'><p>If record doesn't exist</p></div>
494
+
495
+ </li>
496
+
497
+ </ul>
498
+
499
+ </div><table class="source_code">
500
+ <tr>
501
+ <td>
502
+ <pre class="lines">
503
+
504
+
505
+ 112
506
+ 113
507
+ 114
508
+ 115
509
+ 116
510
+ 117
511
+ 118
512
+ 119
513
+ 120
514
+ 121
515
+ 122</pre>
516
+ </td>
517
+ <td>
518
+ <pre class="code"><span class="info file"># File 'lib/kabk/adapters/sequel_adapter.rb', line 112</span>
519
+
520
+ <span class='kw'>def</span> <span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='label'>context:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
521
+ <span class='id identifier rubyid_record'>record</span> <span class='op'>=</span> <span class='ivar'>@resource</span><span class='period'>.</span><span class='id identifier rubyid_model_class'>model_class</span><span class='lbracket'>[</span><span class='id identifier rubyid_id'>id</span><span class='rbracket'>]</span>
522
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../NotFoundError.html" title="Kabk::NotFoundError (class)">NotFoundError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Record not found</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_record'>record</span>
523
+
524
+ <span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_destroy'>destroy</span>
525
+
526
+ <span class='lbrace'>{</span>
527
+ <span class='label'>success:</span> <span class='kw'>true</span><span class='comma'>,</span>
528
+ <span class='label'>message:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Record successfully deleted</span><span class='tstring_end'>&quot;</span></span>
529
+ <span class='rbrace'>}</span>
530
+ <span class='kw'>end</span></pre>
531
+ </td>
532
+ </tr>
533
+ </table>
534
+ </div>
535
+
536
+ <div class="method_details ">
537
+ <h3 class="signature " id="exists?-instance_method">
538
+
539
+ #<strong>exists?</strong>(field_name, value, exclude_id: nil) &#x21d2; <tt>Boolean</tt>
540
+
541
+
542
+
543
+
544
+
545
+ </h3><div class="docstring">
546
+ <div class="discussion">
547
+
548
+
549
+ </div>
550
+ </div>
551
+ <div class="tags">
552
+ <p class="tag_title">Parameters:</p>
553
+ <ul class="param">
554
+
555
+ <li>
556
+
557
+ <span class='name'>field_name</span>
558
+
559
+
560
+ <span class='type'>(<tt>Symbol</tt>, <tt>String</tt>)</span>
561
+
562
+
563
+
564
+ </li>
565
+
566
+ <li>
567
+
568
+ <span class='name'>value</span>
569
+
570
+
571
+ <span class='type'>(<tt>Object</tt>)</span>
572
+
573
+
574
+
575
+ </li>
576
+
577
+ <li>
578
+
579
+ <span class='name'>exclude_id</span>
580
+
581
+
582
+ <span class='type'>(<tt>Integer</tt>, <tt>String</tt>, <tt>nil</tt>)</span>
583
+
584
+
585
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
586
+
587
+
588
+ </li>
589
+
590
+ </ul>
591
+
592
+ <p class="tag_title">Returns:</p>
593
+ <ul class="return">
594
+
595
+ <li>
596
+
597
+
598
+ <span class='type'>(<tt>Boolean</tt>)</span>
599
+
600
+
601
+
602
+ </li>
603
+
604
+ </ul>
605
+
606
+ </div><table class="source_code">
607
+ <tr>
608
+ <td>
609
+ <pre class="lines">
610
+
611
+
612
+ 128
613
+ 129
614
+ 130
615
+ 131
616
+ 132
617
+ 133
618
+ 134
619
+ 135</pre>
620
+ </td>
621
+ <td>
622
+ <pre class="code"><span class="info file"># File 'lib/kabk/adapters/sequel_adapter.rb', line 128</span>
623
+
624
+ <span class='kw'>def</span> <span class='id identifier rubyid_exists?'>exists?</span><span class='lparen'>(</span><span class='id identifier rubyid_field_name'>field_name</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='label'>exclude_id:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
625
+ <span class='id identifier rubyid_dataset'>dataset</span> <span class='op'>=</span> <span class='ivar'>@resource</span><span class='period'>.</span><span class='id identifier rubyid_model_class'>model_class</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='id identifier rubyid_field_name'>field_name</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
626
+ <span class='kw'>if</span> <span class='id identifier rubyid_exclude_id'>exclude_id</span>
627
+ <span class='id identifier rubyid_pk'>pk</span> <span class='op'>=</span> <span class='ivar'>@resource</span><span class='period'>.</span><span class='id identifier rubyid_model_class'>model_class</span><span class='period'>.</span><span class='id identifier rubyid_primary_key'>primary_key</span> <span class='op'>||</span> <span class='symbol'>:id</span>
628
+ <span class='id identifier rubyid_dataset'>dataset</span> <span class='op'>=</span> <span class='id identifier rubyid_dataset'>dataset</span><span class='period'>.</span><span class='id identifier rubyid_exclude'>exclude</span><span class='lparen'>(</span><span class='id identifier rubyid_pk'>pk</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_exclude_id'>exclude_id</span><span class='rparen'>)</span>
629
+ <span class='kw'>end</span>
630
+ <span class='op'>!</span><span class='id identifier rubyid_dataset'>dataset</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
631
+ <span class='kw'>end</span></pre>
632
+ </td>
633
+ </tr>
634
+ </table>
635
+ </div>
636
+
637
+ <div class="method_details ">
638
+ <h3 class="signature " id="get-instance_method">
639
+
640
+ #<strong>get</strong>(id, context: {}) &#x21d2; <tt>Hash</tt>
641
+
642
+
643
+
644
+
645
+
646
+ </h3><div class="docstring">
647
+ <div class="discussion">
648
+ <p>Returns Protocol response hash with success, data.</p>
649
+
650
+ </div>
651
+ </div>
652
+ <div class="tags">
653
+ <p class="tag_title">Parameters:</p>
654
+ <ul class="param">
655
+
656
+ <li>
657
+
658
+ <span class='name'>id</span>
659
+
660
+
661
+ <span class='type'>(<tt>Integer</tt>, <tt>String</tt>)</span>
662
+
663
+
664
+
665
+ &mdash;
666
+ <div class='inline'><p>Primary key</p></div>
667
+
668
+ </li>
669
+
670
+ <li>
671
+
672
+ <span class='name'>context</span>
673
+
674
+
675
+ <span class='type'>(<tt>Hash</tt>)</span>
676
+
677
+
678
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
679
+
680
+
681
+ </li>
682
+
683
+ </ul>
684
+
685
+ <p class="tag_title">Returns:</p>
686
+ <ul class="return">
687
+
688
+ <li>
689
+
690
+
691
+ <span class='type'>(<tt>Hash</tt>)</span>
692
+
693
+
694
+
695
+ &mdash;
696
+ <div class='inline'><p>Protocol response hash with success, data</p></div>
697
+
698
+ </li>
699
+
700
+ </ul>
701
+ <p class="tag_title">Raises:</p>
702
+ <ul class="raise">
703
+
704
+ <li>
705
+
706
+
707
+ <span class='type'>(<tt><span class='object_link'><a href="../NotFoundError.html" title="Kabk::NotFoundError (class)">NotFoundError</a></span></tt>)</span>
708
+
709
+
710
+
711
+ &mdash;
712
+ <div class='inline'><p>If record doesn't exist</p></div>
713
+
714
+ </li>
715
+
716
+ </ul>
717
+
718
+ </div><table class="source_code">
719
+ <tr>
720
+ <td>
721
+ <pre class="lines">
722
+
723
+
724
+ 50
725
+ 51
726
+ 52
727
+ 53
728
+ 54
729
+ 55
730
+ 56
731
+ 57
732
+ 58
733
+ 59
734
+ 60</pre>
735
+ </td>
736
+ <td>
737
+ <pre class="code"><span class="info file"># File 'lib/kabk/adapters/sequel_adapter.rb', line 50</span>
738
+
739
+ <span class='kw'>def</span> <span class='id identifier rubyid_get'>get</span><span class='lparen'>(</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='label'>context:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
740
+ <span class='id identifier rubyid_record'>record</span> <span class='op'>=</span> <span class='ivar'>@resource</span><span class='period'>.</span><span class='id identifier rubyid_model_class'>model_class</span><span class='lbracket'>[</span><span class='id identifier rubyid_id'>id</span><span class='rbracket'>]</span>
741
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../NotFoundError.html" title="Kabk::NotFoundError (class)">NotFoundError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Record not found</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_record'>record</span>
742
+
743
+ <span class='id identifier rubyid_hydrated_records'>hydrated_records</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../RelationHydrator.html" title="Kabk::RelationHydrator (class)">RelationHydrator</a></span></span><span class='period'>.</span><span class='id identifier rubyid_hydrate'><span class='object_link'><a href="../RelationHydrator.html#hydrate-class_method" title="Kabk::RelationHydrator.hydrate (method)">hydrate</a></span></span><span class='lparen'>(</span><span class='ivar'>@resource</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_record'>record</span><span class='rbracket'>]</span><span class='rparen'>)</span>
744
+
745
+ <span class='lbrace'>{</span>
746
+ <span class='label'>success:</span> <span class='kw'>true</span><span class='comma'>,</span>
747
+ <span class='label'>data:</span> <span class='id identifier rubyid_hydrated_records'>hydrated_records</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
748
+ <span class='rbrace'>}</span>
749
+ <span class='kw'>end</span></pre>
750
+ </td>
751
+ </tr>
752
+ </table>
753
+ </div>
754
+
755
+ <div class="method_details ">
756
+ <h3 class="signature " id="list-instance_method">
757
+
758
+ #<strong>list</strong>(params, context: {}) &#x21d2; <tt>Hash</tt>
759
+
760
+
761
+
762
+
763
+
764
+ </h3><div class="docstring">
765
+ <div class="discussion">
766
+ <p>Returns Protocol response hash with success, data, meta.</p>
767
+
768
+ </div>
769
+ </div>
770
+ <div class="tags">
771
+ <p class="tag_title">Parameters:</p>
772
+ <ul class="param">
773
+
774
+ <li>
775
+
776
+ <span class='name'>params</span>
777
+
778
+
779
+ <span class='type'>(<tt>Hash</tt>)</span>
780
+
781
+
782
+
783
+ &mdash;
784
+ <div class='inline'><p>Request parameters (page, per_page, sort, filters).</p></div>
785
+
786
+ </li>
787
+
788
+ <li>
789
+
790
+ <span class='name'>context</span>
791
+
792
+
793
+ <span class='type'>(<tt>Hash</tt>)</span>
794
+
795
+
796
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
797
+
798
+
799
+ </li>
800
+
801
+ </ul>
802
+
803
+ <p class="tag_title">Returns:</p>
804
+ <ul class="return">
805
+
806
+ <li>
807
+
808
+
809
+ <span class='type'>(<tt>Hash</tt>)</span>
810
+
811
+
812
+
813
+ &mdash;
814
+ <div class='inline'><p>Protocol response hash with success, data, meta</p></div>
815
+
816
+ </li>
817
+
818
+ </ul>
819
+
820
+ </div><table class="source_code">
821
+ <tr>
822
+ <td>
823
+ <pre class="lines">
824
+
825
+
826
+ 15
827
+ 16
828
+ 17
829
+ 18
830
+ 19
831
+ 20
832
+ 21
833
+ 22
834
+ 23
835
+ 24
836
+ 25
837
+ 26
838
+ 27
839
+ 28
840
+ 29
841
+ 30
842
+ 31
843
+ 32
844
+ 33
845
+ 34
846
+ 35
847
+ 36
848
+ 37
849
+ 38
850
+ 39
851
+ 40
852
+ 41
853
+ 42
854
+ 43
855
+ 44</pre>
856
+ </td>
857
+ <td>
858
+ <pre class="code"><span class="info file"># File 'lib/kabk/adapters/sequel_adapter.rb', line 15</span>
859
+
860
+ <span class='kw'>def</span> <span class='id identifier rubyid_list'>list</span><span class='lparen'>(</span><span class='id identifier rubyid_params'>params</span><span class='comma'>,</span> <span class='label'>context:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
861
+ <span class='id identifier rubyid_dataset'>dataset</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../QueryBuilder.html" title="Kabk::QueryBuilder (class)">QueryBuilder</a></span></span><span class='period'>.</span><span class='id identifier rubyid_build'><span class='object_link'><a href="../QueryBuilder.html#build-class_method" title="Kabk::QueryBuilder.build (method)">build</a></span></span><span class='lparen'>(</span><span class='ivar'>@resource</span><span class='comma'>,</span> <span class='id identifier rubyid_params'>params</span><span class='rparen'>)</span>
862
+
863
+ <span class='kw'>if</span> <span class='id identifier rubyid_dataset'>dataset</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:pagination_record_count</span><span class='rparen'>)</span>
864
+ <span class='id identifier rubyid_total'>total</span> <span class='op'>=</span> <span class='id identifier rubyid_dataset'>dataset</span><span class='period'>.</span><span class='id identifier rubyid_pagination_record_count'>pagination_record_count</span>
865
+ <span class='id identifier rubyid_page'>page</span> <span class='op'>=</span> <span class='id identifier rubyid_dataset'>dataset</span><span class='period'>.</span><span class='id identifier rubyid_current_page'>current_page</span>
866
+ <span class='id identifier rubyid_per_page'>per_page</span> <span class='op'>=</span> <span class='id identifier rubyid_dataset'>dataset</span><span class='period'>.</span><span class='id identifier rubyid_page_size'>page_size</span>
867
+ <span class='id identifier rubyid_last_page'>last_page</span> <span class='op'>=</span> <span class='id identifier rubyid_dataset'>dataset</span><span class='period'>.</span><span class='id identifier rubyid_page_count'>page_count</span>
868
+ <span class='id identifier rubyid_records'>records</span> <span class='op'>=</span> <span class='id identifier rubyid_dataset'>dataset</span><span class='period'>.</span><span class='id identifier rubyid_all'>all</span>
869
+ <span class='kw'>else</span>
870
+ <span class='id identifier rubyid_records'>records</span> <span class='op'>=</span> <span class='id identifier rubyid_dataset'>dataset</span><span class='period'>.</span><span class='id identifier rubyid_all'>all</span>
871
+ <span class='id identifier rubyid_total'>total</span> <span class='op'>=</span> <span class='id identifier rubyid_records'>records</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span>
872
+ <span class='id identifier rubyid_page'>page</span> <span class='op'>=</span> <span class='int'>1</span>
873
+ <span class='id identifier rubyid_per_page'>per_page</span> <span class='op'>=</span> <span class='id identifier rubyid_total'>total</span>
874
+ <span class='id identifier rubyid_last_page'>last_page</span> <span class='op'>=</span> <span class='int'>1</span>
875
+ <span class='kw'>end</span>
876
+
877
+ <span class='id identifier rubyid_hydrated_records'>hydrated_records</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../RelationHydrator.html" title="Kabk::RelationHydrator (class)">RelationHydrator</a></span></span><span class='period'>.</span><span class='id identifier rubyid_hydrate'><span class='object_link'><a href="../RelationHydrator.html#hydrate-class_method" title="Kabk::RelationHydrator.hydrate (method)">hydrate</a></span></span><span class='lparen'>(</span><span class='ivar'>@resource</span><span class='comma'>,</span> <span class='id identifier rubyid_records'>records</span><span class='rparen'>)</span>
878
+
879
+ <span class='lbrace'>{</span>
880
+ <span class='label'>success:</span> <span class='kw'>true</span><span class='comma'>,</span>
881
+ <span class='label'>data:</span> <span class='id identifier rubyid_hydrated_records'>hydrated_records</span><span class='comma'>,</span>
882
+ <span class='label'>meta:</span> <span class='lbrace'>{</span>
883
+ <span class='label'>total:</span> <span class='id identifier rubyid_total'>total</span><span class='comma'>,</span>
884
+ <span class='label'>page:</span> <span class='id identifier rubyid_page'>page</span><span class='comma'>,</span>
885
+ <span class='label'>per_page:</span> <span class='id identifier rubyid_per_page'>per_page</span><span class='comma'>,</span>
886
+ <span class='label'>last_page:</span> <span class='id identifier rubyid_last_page'>last_page</span>
887
+ <span class='rbrace'>}</span>
888
+ <span class='rbrace'>}</span>
889
+ <span class='kw'>end</span></pre>
890
+ </td>
891
+ </tr>
892
+ </table>
893
+ </div>
894
+
895
+ <div class="method_details ">
896
+ <h3 class="signature " id="update-instance_method">
897
+
898
+ #<strong>update</strong>(id, attributes, context: {}) &#x21d2; <tt>Hash</tt>
899
+
900
+
901
+
902
+
903
+
904
+ </h3><div class="docstring">
905
+ <div class="discussion">
906
+ <p>Returns Protocol response hash with success, message, data.</p>
907
+
908
+ </div>
909
+ </div>
910
+ <div class="tags">
911
+ <p class="tag_title">Parameters:</p>
912
+ <ul class="param">
913
+
914
+ <li>
915
+
916
+ <span class='name'>id</span>
917
+
918
+
919
+ <span class='type'>(<tt>Integer</tt>, <tt>String</tt>)</span>
920
+
921
+
922
+
923
+ &mdash;
924
+ <div class='inline'><p>Primary key</p></div>
925
+
926
+ </li>
927
+
928
+ <li>
929
+
930
+ <span class='name'>attributes</span>
931
+
932
+
933
+ <span class='type'>(<tt>Hash</tt>)</span>
934
+
935
+
936
+
937
+ &mdash;
938
+ <div class='inline'><p>Sanitized attributes (with concurrency_field included if passed)</p></div>
939
+
940
+ </li>
941
+
942
+ <li>
943
+
944
+ <span class='name'>context</span>
945
+
946
+
947
+ <span class='type'>(<tt>Hash</tt>)</span>
948
+
949
+
950
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
951
+
952
+
953
+ </li>
954
+
955
+ </ul>
956
+
957
+ <p class="tag_title">Returns:</p>
958
+ <ul class="return">
959
+
960
+ <li>
961
+
962
+
963
+ <span class='type'>(<tt>Hash</tt>)</span>
964
+
965
+
966
+
967
+ &mdash;
968
+ <div class='inline'><p>Protocol response hash with success, message, data</p></div>
969
+
970
+ </li>
971
+
972
+ </ul>
973
+ <p class="tag_title">Raises:</p>
974
+ <ul class="raise">
975
+
976
+ <li>
977
+
978
+
979
+ <span class='type'>(<tt><span class='object_link'><a href="../NotFoundError.html" title="Kabk::NotFoundError (class)">NotFoundError</a></span></tt>)</span>
980
+
981
+
982
+
983
+ &mdash;
984
+ <div class='inline'><p>If record doesn't exist</p></div>
985
+
986
+ </li>
987
+
988
+ <li>
989
+
990
+
991
+ <span class='type'>(<tt><span class='object_link'><a href="../ApiError.html" title="Kabk::ApiError (class)">ApiError</a></span></tt>)</span>
992
+
993
+
994
+
995
+ &mdash;
996
+ <div class='inline'><p>If OCC fails or unique constraint violated</p></div>
997
+
998
+ </li>
999
+
1000
+ </ul>
1001
+
1002
+ </div><table class="source_code">
1003
+ <tr>
1004
+ <td>
1005
+ <pre class="lines">
1006
+
1007
+
1008
+ 86
1009
+ 87
1010
+ 88
1011
+ 89
1012
+ 90
1013
+ 91
1014
+ 92
1015
+ 93
1016
+ 94
1017
+ 95
1018
+ 96
1019
+ 97
1020
+ 98
1021
+ 99
1022
+ 100
1023
+ 101
1024
+ 102
1025
+ 103
1026
+ 104
1027
+ 105
1028
+ 106</pre>
1029
+ </td>
1030
+ <td>
1031
+ <pre class="code"><span class="info file"># File 'lib/kabk/adapters/sequel_adapter.rb', line 86</span>
1032
+
1033
+ <span class='kw'>def</span> <span class='id identifier rubyid_update'>update</span><span class='lparen'>(</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='id identifier rubyid_attributes'>attributes</span><span class='comma'>,</span> <span class='label'>context:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
1034
+ <span class='id identifier rubyid_record'>record</span> <span class='op'>=</span> <span class='ivar'>@resource</span><span class='period'>.</span><span class='id identifier rubyid_model_class'>model_class</span><span class='lbracket'>[</span><span class='id identifier rubyid_id'>id</span><span class='rbracket'>]</span>
1035
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../NotFoundError.html" title="Kabk::NotFoundError (class)">NotFoundError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Record not found</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_record'>record</span>
1036
+
1037
+ <span class='const'><span class='object_link'><a href="../Concurrency.html" title="Kabk::Concurrency (class)">Concurrency</a></span></span><span class='period'>.</span><span class='id identifier rubyid_check!'><span class='object_link'><a href="../Concurrency.html#check!-class_method" title="Kabk::Concurrency.check! (method)">check!</a></span></span><span class='lparen'>(</span><span class='ivar'>@resource</span><span class='comma'>,</span> <span class='id identifier rubyid_record'>record</span><span class='comma'>,</span> <span class='id identifier rubyid_attributes'>attributes</span><span class='rparen'>)</span>
1038
+
1039
+ <span class='id identifier rubyid_c_field'>c_field</span> <span class='op'>=</span> <span class='ivar'>@resource</span><span class='period'>.</span><span class='id identifier rubyid_concurrency_field'>concurrency_field</span><span class='op'>&amp;.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
1040
+ <span class='id identifier rubyid_attributes'>attributes</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_c_field'>c_field</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_c_field'>c_field</span>
1041
+
1042
+ <span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_update'>update</span><span class='lparen'>(</span><span class='id identifier rubyid_attributes'>attributes</span><span class='rparen'>)</span>
1043
+
1044
+ <span class='id identifier rubyid_hydrated_records'>hydrated_records</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../RelationHydrator.html" title="Kabk::RelationHydrator (class)">RelationHydrator</a></span></span><span class='period'>.</span><span class='id identifier rubyid_hydrate'><span class='object_link'><a href="../RelationHydrator.html#hydrate-class_method" title="Kabk::RelationHydrator.hydrate (method)">hydrate</a></span></span><span class='lparen'>(</span><span class='ivar'>@resource</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_record'>record</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1045
+
1046
+ <span class='lbrace'>{</span>
1047
+ <span class='label'>success:</span> <span class='kw'>true</span><span class='comma'>,</span>
1048
+ <span class='label'>message:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Operation completed successfully</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
1049
+ <span class='label'>data:</span> <span class='id identifier rubyid_hydrated_records'>hydrated_records</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
1050
+ <span class='rbrace'>}</span>
1051
+ <span class='kw'>rescue</span> <span class='const'>Sequel</span><span class='op'>::</span><span class='const'>UniqueConstraintViolation</span>
1052
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../ApiError.html" title="Kabk::ApiError (class)">ApiError</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../ApiError.html#initialize-instance_method" title="Kabk::ApiError#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Unique constraint violated</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>code:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>CONFLICT</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>http_status:</span> <span class='int'>409</span><span class='rparen'>)</span>
1053
+ <span class='kw'>end</span></pre>
1054
+ </td>
1055
+ </tr>
1056
+ </table>
1057
+ </div>
1058
+
1059
+ </div>
1060
+
1061
+ </div>
1062
+
1063
+ <div id="footer">
1064
+ Generated on Sat Aug 15 03:28:56 2026 by
1065
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1066
+ 0.9.45 (ruby-4.0.6).
1067
+ </div>
1068
+
1069
+ </div>
1070
+ </body>
1071
+ </html>