loggable_activity 0.1.54 → 0.1.56

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/GETTING-STARTED.md +2 -2
  4. data/docs/LoggableActivity/Activity.html +108 -139
  5. data/docs/LoggableActivity/Configuration.html +3 -3
  6. data/docs/LoggableActivity/Encryption.html +7 -4
  7. data/docs/LoggableActivity/EncryptionKey.html +4 -2
  8. data/docs/LoggableActivity/Hooks.html +37 -37
  9. data/docs/LoggableActivity/Payload.html +32 -6
  10. data/docs/LoggableActivity/PayloadsBuilder.html +14 -11
  11. data/docs/LoggableActivity/UpdatePayloadsBuilder.html +27 -26
  12. data/docs/LoggableActivity.html +3 -1
  13. data/docs/created.rid +10 -10
  14. data/docs/js/search_index.js +1 -1
  15. data/docs/js/search_index.js.gz +0 -0
  16. data/docs/table_of_contents.html +14 -4
  17. data/lib/generators/loggable_activity/.DS_Store +0 -0
  18. data/lib/generators/loggable_activity/install_templates_generator.rb +3 -1
  19. data/lib/generators/loggable_activity/templates/create_loggable_activities.rb +1 -0
  20. data/lib/generators/loggable_activity/templates/helpers/activity_helper.rb +37 -0
  21. data/lib/generators/loggable_activity/templates/helpers/router.rb +52 -0
  22. data/lib/generators/loggable_activity/templates/helpers/routes_helper.rb +20 -0
  23. data/lib/loggable_activity/activity.rb +66 -111
  24. data/lib/loggable_activity/configuration.rb +1 -0
  25. data/lib/loggable_activity/encryption.rb +6 -2
  26. data/lib/loggable_activity/encryption_key.rb +2 -0
  27. data/lib/loggable_activity/hooks.rb +20 -1
  28. data/lib/loggable_activity/payload.rb +7 -0
  29. data/lib/loggable_activity/payloads_builder.rb +6 -3
  30. data/lib/loggable_activity/update_payloads_builder.rb +17 -7
  31. data/lib/loggable_activity/version.rb +3 -1
  32. data/lib/loggable_activity.rb +0 -1
  33. metadata +5 -5
  34. data/lib/.DS_Store +0 -0
  35. data/lib/generators/loggable_activity/templates/helpers/loggable_activity_helper.rb +0 -49
  36. data/lib/generators/loggable_activity/templates/loggable_activity_helper.rb +0 -49
@@ -152,10 +152,10 @@
152
152
  </div>
153
153
 
154
154
  <div class="method-description">
155
-
155
+ <p>Builds the primary update payload.</p>
156
156
 
157
157
  <div class="method-source-code" id="build_primary_update_payload-source">
158
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 28</span>
158
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 30</span>
159
159
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_primary_update_payload</span>(<span class="ruby-identifier">previous_values</span>, <span class="ruby-identifier">current_values</span>)
160
160
  <span class="ruby-keyword">return</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">previous_values</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">current_values</span>
161
161
 
@@ -163,7 +163,8 @@
163
163
  <span class="ruby-ivar">@update_payloads</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Payload</span>.<span class="ruby-identifier">new</span>(
164
164
  <span class="ruby-value">record:</span> <span class="ruby-ivar">@record</span>,
165
165
  <span class="ruby-value">payload_type:</span> <span class="ruby-string">&#39;update_payload&#39;</span>,
166
- <span class="ruby-value">encrypted_attrs:</span> <span class="ruby-identifier">encrypted_update_attrs</span>
166
+ <span class="ruby-value">encrypted_attrs:</span> <span class="ruby-identifier">encrypted_update_attrs</span>,
167
+ <span class="ruby-value">route:</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">route</span>
167
168
  )
168
169
  <span class="ruby-keyword">end</span></pre>
169
170
  </div>
@@ -182,10 +183,10 @@
182
183
  </div>
183
184
 
184
185
  <div class="method-description">
185
-
186
+ <p>Builds the update payload for a belongs_to relation.</p>
186
187
 
187
188
  <div class="method-source-code" id="build_relation_update_for_belongs_to-source">
188
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 78</span>
189
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 86</span>
189
190
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_relation_update_for_belongs_to</span>(<span class="ruby-identifier">relation_config</span>)
190
191
  <span class="ruby-identifier">relation_id</span> = <span class="ruby-node">&quot;#{relation_config[&#39;belongs_to&#39;]}_id&quot;</span>
191
192
  <span class="ruby-identifier">model_class_name</span> = <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">&#39;model&#39;</span>]
@@ -202,8 +203,7 @@
202
203
 
203
204
  <span class="ruby-identifier">payload_type</span> = <span class="ruby-identifier">index</span>.<span class="ruby-identifier">zero?</span> <span class="ruby-operator">?</span> <span class="ruby-string">&#39;previous_association&#39;</span> <span class="ruby-operator">:</span> <span class="ruby-string">&#39;current_association&#39;</span>
204
205
  <span class="ruby-identifier">build_relation_update_payload</span>(
205
- <span class="ruby-identifier">relation_record</span>.<span class="ruby-identifier">attributes</span>,
206
- <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">&#39;loggable_attrs&#39;</span>],
206
+ <span class="ruby-identifier">relation_config</span>,
207
207
  <span class="ruby-identifier">relation_record</span>,
208
208
  <span class="ruby-identifier">payload_type</span>
209
209
  )
@@ -225,10 +225,10 @@
225
225
  </div>
226
226
 
227
227
  <div class="method-description">
228
-
228
+ <p>Builds the update payload for a has_many relation.</p>
229
229
 
230
230
  <div class="method-source-code" id="build_relation_update_for_has_many-source">
231
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 64</span>
231
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 70</span>
232
232
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_relation_update_for_has_many</span>(<span class="ruby-identifier">relation_config</span>)
233
233
  <span class="ruby-comment"># NOTE: This method is not implemented yet.</span>
234
234
  <span class="ruby-comment"># It requires that there is a form where it is possible to change</span>
@@ -251,15 +251,15 @@
251
251
  </div>
252
252
 
253
253
  <div class="method-description">
254
-
254
+ <p>Builds the update payload for a has_one relation.</p>
255
255
 
256
256
  <div class="method-source-code" id="build_relation_update_for_has_one-source">
257
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 71</span>
257
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 78</span>
258
258
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_relation_update_for_has_one</span>(<span class="ruby-identifier">relation_config</span>)
259
259
  <span class="ruby-comment"># NOTE: This method is not implemented yet.</span>
260
260
  <span class="ruby-comment"># It requires that there is a form where it is possible to change</span>
261
261
  <span class="ruby-comment"># the related records. This is not implemented yet. in the Demo app</span>
262
- <span class="ruby-comment"># puts relation_config[&#39;has_many&#39;]</span>
262
+ <span class="ruby-comment"># puts relation_config[&#39;has_one&#39;]</span>
263
263
  <span class="ruby-keyword">end</span></pre>
264
264
  </div>
265
265
  </div>
@@ -271,24 +271,25 @@
271
271
  <div class="method-header">
272
272
  <div class="method-heading">
273
273
  <span class="method-name">build_relation_update_payload</span><span
274
- class="method-args">(_attrs, loggable_attrs, record, payload_type)</span>
274
+ class="method-args">(relation_config, record, payload_type)</span>
275
275
  <span class="method-click-advice">click to toggle source</span>
276
276
  </div>
277
277
  </div>
278
278
 
279
279
  <div class="method-description">
280
-
280
+ <p>Builds the update payload for a relation.</p>
281
281
 
282
282
  <div class="method-source-code" id="build_relation_update_payload-source">
283
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 102</span>
284
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_relation_update_payload</span>(<span class="ruby-identifier">_attrs</span>, <span class="ruby-identifier">loggable_attrs</span>, <span class="ruby-identifier">record</span>, <span class="ruby-identifier">payload_type</span>)
283
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 110</span>
284
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_relation_update_payload</span>(<span class="ruby-identifier">relation_config</span>, <span class="ruby-identifier">record</span>, <span class="ruby-identifier">payload_type</span>)
285
285
  <span class="ruby-identifier">encryption_key</span> = <span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">EncryptionKey</span>.<span class="ruby-identifier">for_record</span>(<span class="ruby-identifier">record</span>)&amp;.<span class="ruby-identifier">key</span>
286
- <span class="ruby-identifier">encrypted_attrs</span> = <span class="ruby-identifier">relation_encrypted_attrs</span>(<span class="ruby-identifier">record</span>.<span class="ruby-identifier">attributes</span>, <span class="ruby-identifier">loggable_attrs</span>, <span class="ruby-identifier">encryption_key</span>)
286
+ <span class="ruby-identifier">encrypted_attrs</span> = <span class="ruby-identifier">relation_encrypted_attrs</span>(<span class="ruby-identifier">record</span>.<span class="ruby-identifier">attributes</span>, <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">&#39;loggable_attrs&#39;</span>], <span class="ruby-identifier">encryption_key</span>)
287
287
 
288
288
  <span class="ruby-ivar">@update_payloads</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Payload</span>.<span class="ruby-identifier">new</span>(
289
289
  <span class="ruby-value">record:</span>,
290
290
  <span class="ruby-value">encrypted_attrs:</span>,
291
- <span class="ruby-value">payload_type:</span>
291
+ <span class="ruby-value">payload_type:</span>,
292
+ <span class="ruby-value">route:</span> <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">&#39;route&#39;</span>]
292
293
  )
293
294
  <span class="ruby-keyword">end</span></pre>
294
295
  </div>
@@ -307,10 +308,10 @@
307
308
  </div>
308
309
 
309
310
  <div class="method-description">
310
-
311
+ <p>Builds update payloads for relations.</p>
311
312
 
312
313
  <div class="method-source-code" id="build_update_relation_payloads-source">
313
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 51</span>
314
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 56</span>
314
315
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_update_relation_payloads</span>(<span class="ruby-identifier">relation_config</span>)
315
316
  <span class="ruby-identifier">relation_config</span>.<span class="ruby-identifier">each_key</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
316
317
  <span class="ruby-keyword">case</span> <span class="ruby-identifier">key</span>
@@ -339,10 +340,10 @@
339
340
  </div>
340
341
 
341
342
  <div class="method-description">
342
-
343
+ <p>Returns the encrypted attributes for the update payload.</p>
343
344
 
344
345
  <div class="method-source-code" id="encrypted_update_attrs-source">
345
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 39</span>
346
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 43</span>
346
347
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">encrypted_update_attrs</span>(<span class="ruby-identifier">previous_values</span>, <span class="ruby-identifier">current_values</span>)
347
348
  <span class="ruby-identifier">changes</span> = []
348
349
  <span class="ruby-identifier">changed_attrs</span> = <span class="ruby-identifier">previous_values</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">loggable_attrs</span>)
@@ -370,10 +371,10 @@
370
371
  </div>
371
372
 
372
373
  <div class="method-description">
373
-
374
+ <p>Fetch the previous and current values of the primary record.</p>
374
375
 
375
376
  <div class="method-source-code" id="primary_update_attrs-source">
376
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 21</span>
377
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 22</span>
377
378
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">primary_update_attrs</span>
378
379
  <span class="ruby-identifier">previous_values</span> = <span class="ruby-identifier">saved_changes</span>.<span class="ruby-identifier">transform_values</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:first</span>)
379
380
  <span class="ruby-identifier">current_values</span> = <span class="ruby-identifier">saved_changes</span>.<span class="ruby-identifier">transform_values</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:last</span>)
@@ -396,10 +397,10 @@
396
397
  </div>
397
398
 
398
399
  <div class="method-description">
399
-
400
+ <p>Returns the encrypted attributes for a relation.</p>
400
401
 
401
402
  <div class="method-source-code" id="relation_encrypted_attrs-source">
402
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 113</span>
403
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 123</span>
403
404
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">relation_encrypted_attrs</span>(<span class="ruby-identifier">attrs</span>, <span class="ruby-identifier">loggable_attrs</span>, <span class="ruby-identifier">encryption_key</span>)
404
405
  <span class="ruby-identifier">encrypt_attrs</span>(<span class="ruby-identifier">attrs</span>, <span class="ruby-identifier">loggable_attrs</span>, <span class="ruby-identifier">encryption_key</span>)
405
406
  <span class="ruby-keyword">end</span></pre>
@@ -71,6 +71,8 @@
71
71
 
72
72
  <section class="description">
73
73
 
74
+ <p>Version of the gem</p>
75
+
74
76
  </section>
75
77
 
76
78
  <section id="5Buntitled-5D" class="documentation-section">
@@ -82,7 +84,7 @@
82
84
  </header>
83
85
  <dl>
84
86
  <dt id="VERSION">VERSION
85
- <dd>
87
+ <dd><p>Version</p>
86
88
  </dl>
87
89
  </section>
88
90
 
data/docs/created.rid CHANGED
@@ -1,10 +1,10 @@
1
- Sat, 24 Feb 2024 15:48:31 +0100
2
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/activity.rb Wed, 21 Feb 2024 12:58:24 +0100
3
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/configuration.rb Mon, 19 Feb 2024 15:59:34 +0100
4
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/encryption.rb Fri, 16 Feb 2024 15:03:24 +0100
5
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/encryption_key.rb Wed, 21 Feb 2024 12:58:24 +0100
6
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/hooks.rb Wed, 21 Feb 2024 12:58:24 +0100
7
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/payload.rb Wed, 21 Feb 2024 12:58:24 +0100
8
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/payloads_builder.rb Thu, 22 Feb 2024 17:26:16 +0100
9
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/update_payloads_builder.rb Thu, 22 Feb 2024 17:26:16 +0100
10
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/version.rb Thu, 22 Feb 2024 17:26:42 +0100
1
+ Fri, 01 Mar 2024 15:34:22 +0100
2
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/activity.rb Fri, 01 Mar 2024 15:34:11 +0100
3
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/configuration.rb Sat, 24 Feb 2024 19:02:46 +0100
4
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/encryption.rb Sat, 24 Feb 2024 19:02:46 +0100
5
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/encryption_key.rb Fri, 01 Mar 2024 15:13:47 +0100
6
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/hooks.rb Fri, 01 Mar 2024 12:52:17 +0100
7
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/payload.rb Fri, 01 Mar 2024 15:32:15 +0100
8
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/payloads_builder.rb Fri, 01 Mar 2024 15:13:47 +0100
9
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/update_payloads_builder.rb Fri, 01 Mar 2024 14:51:07 +0100
10
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/version.rb Sat, 24 Feb 2024 19:02:46 +0100
@@ -1 +1 @@
1
- var search_data = {"index":{"searchIndex":["loggableactivity","activity","configuration","encryption","encryptionerror","encryptionkey","hooks","payload","payloadsbuilder","updatepayloadsbuilder","action_key()","activities_for_actor()","actor_display_name()","actor_display_name_field()","actor_encryption_key()","actor_key()","associated_record_encryption_key()","attrs()","attrs()","base_action()","blank?()","build_associated_payload()","build_destroy_payload()","build_has_many_payloads()","build_payload()","build_payloads()","build_primary_payload()","build_primary_update_payload()","build_relation_payload()","build_relation_update_for_belongs_to()","build_relation_update_for_has_many()","build_relation_update_for_has_one()","build_relation_update_payload()","build_update_payloads()","build_update_relation_payloads()","create_activity()","create_encryption_key()","current_user_model?()","decrypt()","decrypt_attr()","decrypted_attrs()","decrypted_from_to_attr()","decrypted_update_attrs()","deleted_attrs()","encrypt()","encrypt_attr()","encrypt_attrs()","encrypted_actor_name()","encrypted_record_name()","encrypted_update_attrs()","for_class()","for_record()","for_record_by_type_and_id()","last()","latest()","load_config_file()","log()","log_activity()","log_create_activity()","log_custom_activity()","log_destroy()","log_destroy_activity()","log_update()","log_update_activity()","mark_as_deleted()","must_have_at_least_one_payload()","nothing_to_log?()","ordered_payloads()","payload_encryption_key()","previous_associations_attrs()","primary_encryption_key()","primary_encryption_key_deleted?()","primary_payload()","primary_payload_attrs()","primary_update_attrs()","random_key()","record_display_name()","record_key()","relation_encrypted_attrs()","relations_attrs()","update_activity_attrs()","update_attrs()","updated_relations_attrs()"],"longSearchIndex":["loggableactivity","loggableactivity::activity","loggableactivity::configuration","loggableactivity::encryption","loggableactivity::encryptionerror","loggableactivity::encryptionkey","loggableactivity::hooks","loggableactivity::payload","loggableactivity::payloadsbuilder","loggableactivity::updatepayloadsbuilder","loggableactivity::hooks#action_key()","loggableactivity::activity::activities_for_actor()","loggableactivity::activity#actor_display_name()","loggableactivity::hooks#actor_display_name_field()","loggableactivity::hooks#actor_encryption_key()","loggableactivity::activity#actor_key()","loggableactivity::payloadsbuilder#associated_record_encryption_key()","loggableactivity::activity#attrs()","loggableactivity::payload#attrs()","loggableactivity::hooks#base_action()","loggableactivity::encryption::blank?()","loggableactivity::payloadsbuilder#build_associated_payload()","loggableactivity::payloadsbuilder#build_destroy_payload()","loggableactivity::payloadsbuilder#build_has_many_payloads()","loggableactivity::payloadsbuilder#build_payload()","loggableactivity::payloadsbuilder#build_payloads()","loggableactivity::payloadsbuilder#build_primary_payload()","loggableactivity::updatepayloadsbuilder#build_primary_update_payload()","loggableactivity::payloadsbuilder#build_relation_payload()","loggableactivity::updatepayloadsbuilder#build_relation_update_for_belongs_to()","loggableactivity::updatepayloadsbuilder#build_relation_update_for_has_many()","loggableactivity::updatepayloadsbuilder#build_relation_update_for_has_one()","loggableactivity::updatepayloadsbuilder#build_relation_update_payload()","loggableactivity::updatepayloadsbuilder#build_update_payloads()","loggableactivity::updatepayloadsbuilder#build_update_relation_payloads()","loggableactivity::hooks#create_activity()","loggableactivity::encryptionkey::create_encryption_key()","loggableactivity::hooks#current_user_model?()","loggableactivity::encryption::decrypt()","loggableactivity::payload#decrypt_attr()","loggableactivity::payload#decrypted_attrs()","loggableactivity::payload#decrypted_from_to_attr()","loggableactivity::payload#decrypted_update_attrs()","loggableactivity::payload#deleted_attrs()","loggableactivity::encryption::encrypt()","loggableactivity::payloadsbuilder#encrypt_attr()","loggableactivity::payloadsbuilder#encrypt_attrs()","loggableactivity::hooks#encrypted_actor_name()","loggableactivity::hooks#encrypted_record_name()","loggableactivity::updatepayloadsbuilder#encrypted_update_attrs()","loggableactivity::configuration::for_class()","loggableactivity::encryptionkey::for_record()","loggableactivity::encryptionkey::for_record_by_type_and_id()","loggableactivity::activity::last()","loggableactivity::activity::latest()","loggableactivity::configuration::load_config_file()","loggableactivity::hooks#log()","loggableactivity::hooks#log_activity()","loggableactivity::hooks#log_create_activity()","loggableactivity::hooks#log_custom_activity()","loggableactivity::hooks#log_destroy()","loggableactivity::hooks#log_destroy_activity()","loggableactivity::hooks#log_update()","loggableactivity::hooks#log_update_activity()","loggableactivity::encryptionkey#mark_as_deleted()","loggableactivity::activity#must_have_at_least_one_payload()","loggableactivity::hooks#nothing_to_log?()","loggableactivity::activity#ordered_payloads()","loggableactivity::payload#payload_encryption_key()","loggableactivity::activity#previous_associations_attrs()","loggableactivity::hooks#primary_encryption_key()","loggableactivity::hooks#primary_encryption_key_deleted?()","loggableactivity::activity#primary_payload()","loggableactivity::activity#primary_payload_attrs()","loggableactivity::updatepayloadsbuilder#primary_update_attrs()","loggableactivity::encryptionkey::random_key()","loggableactivity::activity#record_display_name()","loggableactivity::activity#record_key()","loggableactivity::updatepayloadsbuilder#relation_encrypted_attrs()","loggableactivity::activity#relations_attrs()","loggableactivity::activity#update_activity_attrs()","loggableactivity::activity#update_attrs()","loggableactivity::activity#updated_relations_attrs()"],"info":[["LoggableActivity","","LoggableActivity.html","",""],["LoggableActivity::Activity","","LoggableActivity/Activity.html","","<p>Represents one action in the activity log.\n"],["LoggableActivity::Configuration","","LoggableActivity/Configuration.html","","<p>This class is used to load the configuration file located at config/loggable_activity.yml\n"],["LoggableActivity::Encryption","","LoggableActivity/Encryption.html","","<p>This module is used to encrypt and decrypt attributes\n"],["LoggableActivity::EncryptionError","","LoggableActivity/EncryptionError.html","","<p>This error is raised when encryption or decryption fails\n"],["LoggableActivity::EncryptionKey","","LoggableActivity/EncryptionKey.html","","<p>This class represents the encryption key used to unlock the data for one payload. When deleted, only …\n"],["LoggableActivity::Hooks","","LoggableActivity/Hooks.html","","<p>This module provides hooks for creating activities when included in a model.\n"],["LoggableActivity::Payload","","LoggableActivity/Payload.html","","<p>This class represents a payload in the log, containing encrypted data of one record in the database. …\n"],["LoggableActivity::PayloadsBuilder","","LoggableActivity/PayloadsBuilder.html","","<p>This module is responsible for building payloads used in loggable activities.\n"],["LoggableActivity::UpdatePayloadsBuilder","","LoggableActivity/UpdatePayloadsBuilder.html","","<p>This module is responsible for building update payloads used in loggable activities.\n"],["action_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-action_key","()",""],["activities_for_actor","LoggableActivity::Activity","LoggableActivity/Activity.html#method-c-activities_for_actor","(actor, limit = 20, params = { offset: 0 })","<p>Returns a list of activities for a given actor.\n"],["actor_display_name","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-actor_display_name","()","<p>Returns the display name for a actor. what method to use if defined in ‘/config/loggable_activity.yaml’ …\n"],["actor_display_name_field","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-actor_display_name_field","()",""],["actor_encryption_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-actor_encryption_key","()",""],["actor_key","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-actor_key","()",""],["associated_record_encryption_key","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-associated_record_encryption_key","(associated_record, data_owner)","<p>Retrieves the encryption key for the associated record.\n<p>@param associated_record [ActiveRecord::Base] …\n"],["attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-attrs","()","<p>Returns a list of attributes of the activity includig the indliced relations. The included relations …\n"],["attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-attrs","()","<p>Returns the decrypted attributes of the payload based on its type.\n<p>@return [Hash] The decrypted attributes. …\n"],["base_action","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-base_action","()",""],["blank?","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-blank-3F","(value)",""],["build_associated_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_associated_payload","(associated_record, relation_config)","<p>Builds the payload for an associated record.\n"],["build_destroy_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_destroy_payload","()","<p>Builds the payload for destroyed records.\n"],["build_has_many_payloads","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_has_many_payloads","(relation_config, relation_type)","<p>Builds payloads for has_many relations.\n"],["build_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_payload","(relation_config, relation_type)","<p>Builds the payload for a specific relation.\n<p>@param relation_config [Hash] The configuration of the relation. …\n"],["build_payloads","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_payloads","()","<p>Builds payloads for the loggable activity.\n\n<pre>Example:\n build_payloads\n\nReturns:\n #&lt;LoggableActivity::Payload:0x0000000109658718&gt; ...</pre>\n"],["build_primary_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_primary_payload","()","<p>Builds the primary payload.\n"],["build_primary_update_payload","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_primary_update_payload","(previous_values, current_values)",""],["build_relation_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_relation_payload","(relation_config)","<p>Builds payloads for relations\n<p>@param relation_config [Hash] The configuration of the relation.\n"],["build_relation_update_for_belongs_to","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_belongs_to","(relation_config)",""],["build_relation_update_for_has_many","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_has_many","(relation_config)",""],["build_relation_update_for_has_one","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_has_one","(relation_config)",""],["build_relation_update_payload","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_payload","(_attrs, loggable_attrs, record, payload_type)",""],["build_update_payloads","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_update_payloads","()","<p>Builds payloads for an activity update event.\n"],["build_update_relation_payloads","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_update_relation_payloads","(relation_config)",""],["create_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-create_activity","(payloads)",""],["create_encryption_key","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-create_encryption_key","(record_type, record_id, parent_key = nil)","<p>Creates an encryption key for a record, optionally using a parent key.\n\n<pre>@param record_type [String] The ...</pre>\n"],["current_user_model?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-current_user_model-3F","()",""],["decrypt","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-decrypt","(data, encoded_key)","<p>Decrypts the given data using the given encryption key\n<p>Example:\n\n<pre>LoggableActivity::Encryption.decrypt(&#39;SOME_ENCRYPTED_STRING&#39;, ...</pre>\n"],["decrypt_attr","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypt_attr","(value)","<p>Decrypts a single attribute.\n<p>@param value [String] The encrypted value to decrypt. @return [String] The …\n"],["decrypted_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_attrs","()","<p>Decrypts all attributes.\n<p>@return [Hash] The decrypted attributes.\n"],["decrypted_from_to_attr","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_from_to_attr","(change)","<p>Decrypts ‘from’ and ‘to’ attributes.\n<p>@param change [Hash] The change hash containing ‘from’ …\n"],["decrypted_update_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_update_attrs","()","<p>Decrypts the ‘from’ and ‘to’ attributes in the update payload.\n<p>@return [Array&lt;Hash&gt;] …\n"],["deleted_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-deleted_attrs","()","<p>Helper method to handle deleted attributes.\n<p>@return [Hash] The hash with deleted attributes.\n"],["encrypt","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-encrypt","(data, encoded_key)","<p>Encrypts the given data using the given encryption key\n<p>Example:\n\n<pre>LoggableActivity::Encryption.encrypt(&#39;my ...</pre>\n"],["encrypt_attr","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-encrypt_attr","(attrs, encryption_key)","<p>Encrypts a single attribute.\n<p>@param attrs [Hash] The attributes to be encrypted. @param encryption_key …\n"],["encrypt_attrs","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-encrypt_attrs","(attrs, loggable_attrs, encryption_key)","<p>Encrypts attributes.\n<p>@param attrs [Hash] The attributes to be encrypted. @param loggable_attrs [Array&lt;String&gt;] …\n"],["encrypted_actor_name","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-encrypted_actor_name","()",""],["encrypted_record_name","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-encrypted_record_name","()",""],["encrypted_update_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-encrypted_update_attrs","(previous_values, current_values)",""],["for_class","LoggableActivity::Configuration","LoggableActivity/Configuration.html#method-c-for_class","(class_name)","<p>Returns the configuration data for the given class\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-constant\">LoggableActivity</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Configuration</span>.<span class=\"ruby-identifier\">for_class</span>(<span class=\"ruby-string\">&#39;User&#39;</span>)\n</pre>\n"],["for_record","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-for_record","(record, parent_key = nil)","<p>Returns an encryption key for a record, optionally using a parent key.\n\n<pre>@param record [ActiveRecord::Base] ...</pre>\n"],["for_record_by_type_and_id","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-for_record_by_type_and_id","(record_type, record_id, parent_key = nil)","<p>Returns an encryption key for a record by its type and ID, optionally using a parent key.\n\n<pre>@param record_type ...</pre>\n"],["last","LoggableActivity::Activity","LoggableActivity/Activity.html#method-c-last","(limit = 1)","<p>Returns the last activity.\n"],["latest","LoggableActivity::Activity","LoggableActivity/Activity.html#method-c-latest","(limit = 20, params = { offset: 0 })","<p>Returns a list of activities ordered by creation date.\n"],["load_config_file","LoggableActivity::Configuration","LoggableActivity/Configuration.html#method-c-load_config_file","(config_file_path)",""],["log","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log","(action, actor: nil, params: {})","<p>Logs an activity with the specified action, actor, and params.\n\n<pre>@param action [Symbol] The action to log ...</pre>\n"],["log_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_activity","()",""],["log_create_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_create_activity","()",""],["log_custom_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_custom_activity","(activity)",""],["log_destroy","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_destroy","()",""],["log_destroy_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_destroy_activity","()",""],["log_update","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_update","()",""],["log_update_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_update_activity","()",""],["mark_as_deleted","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-i-mark_as_deleted","()","<p>Marks the encryption key as deleted by updating the key to nil.\n"],["must_have_at_least_one_payload","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-must_have_at_least_one_payload","()",""],["nothing_to_log?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-nothing_to_log-3F","(payloads)",""],["ordered_payloads","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-ordered_payloads","()",""],["payload_encryption_key","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-payload_encryption_key","()","<p>Retrieves the encryption key for the payload.\n<p>@return [String, nil] The encryption key.\n"],["previous_associations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-previous_associations_attrs","()",""],["primary_encryption_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-primary_encryption_key","()",""],["primary_encryption_key_deleted?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-primary_encryption_key_deleted-3F","()",""],["primary_payload","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-primary_payload","()",""],["primary_payload_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-primary_payload_attrs","()","<p>Returns the attributes for the primary payload, without the relations.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">primary_payload_attrs</span>\n</pre>\n"],["primary_update_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-primary_update_attrs","()",""],["random_key","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-random_key","()","<p>Generates a random encryption key.\n\n<pre>@return [String] The generated encryption key.</pre>\n<p>Example:\n"],["record_display_name","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-record_display_name","()","<p>Returns the display name for a record. what method to use if defined in ‘/config/loggable_activity.yaml’ …\n"],["record_key","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-record_key","()",""],["relation_encrypted_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-relation_encrypted_attrs","(attrs, loggable_attrs, encryption_key)",""],["relations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-relations_attrs","()","<p>Returns the attributes for the relations.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">relations_attrs</span>\n</pre>\n"],["update_activity_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-update_activity_attrs","()","<p>Returns the attributes of an upddate activity.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">update_activity_attrs</span>\n</pre>\n"],["update_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-update_attrs","()",""],["updated_relations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-updated_relations_attrs","()",""]]}}
1
+ var search_data = {"index":{"searchIndex":["loggableactivity","activity","configuration","encryption","encryptionerror","encryptionkey","hooks","payload","payloadsbuilder","updatepayloadsbuilder","action_key()","activities_for_actor()","actor_display_name()","actor_display_name_field()","actor_encryption_key()","actor_key()","associated_record_encryption_key()","attrs()","attrs()","base_action()","blank?()","build_associated_payload()","build_destroy_payload()","build_has_many_payloads()","build_payload()","build_payloads()","build_primary_payload()","build_primary_update_payload()","build_relation_payload()","build_relation_update_for_belongs_to()","build_relation_update_for_has_many()","build_relation_update_for_has_one()","build_relation_update_payload()","build_update_payloads()","build_update_relation_payloads()","create_activity()","create_encryption_key()","current_user_model?()","decrypt()","decrypt_attr()","decrypted_attrs()","decrypted_from_to_attr()","decrypted_update_attrs()","deleted_attrs()","encrypt()","encrypt_attr()","encrypt_attrs()","encrypted_actor_name()","encrypted_record_name()","encrypted_update_attrs()","for_class()","for_record()","for_record_by_type_and_id()","last()","latest()","load_config_file()","log()","log_activity()","log_create_activity()","log_custom_activity()","log_destroy()","log_destroy_activity()","log_update()","log_update_activity()","mark_as_deleted()","must_have_at_least_one_payload()","nothing_to_log?()","ordered_payloads()","path()","payload_encryption_key()","payload_route()","previous_associations_attrs()","primary_encryption_key()","primary_encryption_key_deleted?()","primary_payload()","primary_payload_attrs()","primary_update_attrs()","random_key()","record_display_name()","record_key()","relation_encrypted_attrs()","relations_attrs()","update_activity_attrs()","update_attrs()","updated_relations_attrs()"],"longSearchIndex":["loggableactivity","loggableactivity::activity","loggableactivity::configuration","loggableactivity::encryption","loggableactivity::encryptionerror","loggableactivity::encryptionkey","loggableactivity::hooks","loggableactivity::payload","loggableactivity::payloadsbuilder","loggableactivity::updatepayloadsbuilder","loggableactivity::hooks#action_key()","loggableactivity::activity::activities_for_actor()","loggableactivity::activity#actor_display_name()","loggableactivity::hooks#actor_display_name_field()","loggableactivity::hooks#actor_encryption_key()","loggableactivity::activity#actor_key()","loggableactivity::payloadsbuilder#associated_record_encryption_key()","loggableactivity::activity#attrs()","loggableactivity::payload#attrs()","loggableactivity::hooks#base_action()","loggableactivity::encryption::blank?()","loggableactivity::payloadsbuilder#build_associated_payload()","loggableactivity::payloadsbuilder#build_destroy_payload()","loggableactivity::payloadsbuilder#build_has_many_payloads()","loggableactivity::payloadsbuilder#build_payload()","loggableactivity::payloadsbuilder#build_payloads()","loggableactivity::payloadsbuilder#build_primary_payload()","loggableactivity::updatepayloadsbuilder#build_primary_update_payload()","loggableactivity::payloadsbuilder#build_relation_payload()","loggableactivity::updatepayloadsbuilder#build_relation_update_for_belongs_to()","loggableactivity::updatepayloadsbuilder#build_relation_update_for_has_many()","loggableactivity::updatepayloadsbuilder#build_relation_update_for_has_one()","loggableactivity::updatepayloadsbuilder#build_relation_update_payload()","loggableactivity::updatepayloadsbuilder#build_update_payloads()","loggableactivity::updatepayloadsbuilder#build_update_relation_payloads()","loggableactivity::hooks#create_activity()","loggableactivity::encryptionkey::create_encryption_key()","loggableactivity::hooks#current_user_model?()","loggableactivity::encryption::decrypt()","loggableactivity::payload#decrypt_attr()","loggableactivity::payload#decrypted_attrs()","loggableactivity::payload#decrypted_from_to_attr()","loggableactivity::payload#decrypted_update_attrs()","loggableactivity::payload#deleted_attrs()","loggableactivity::encryption::encrypt()","loggableactivity::payloadsbuilder#encrypt_attr()","loggableactivity::payloadsbuilder#encrypt_attrs()","loggableactivity::hooks#encrypted_actor_name()","loggableactivity::hooks#encrypted_record_name()","loggableactivity::updatepayloadsbuilder#encrypted_update_attrs()","loggableactivity::configuration::for_class()","loggableactivity::encryptionkey::for_record()","loggableactivity::encryptionkey::for_record_by_type_and_id()","loggableactivity::activity::last()","loggableactivity::activity::latest()","loggableactivity::configuration::load_config_file()","loggableactivity::hooks#log()","loggableactivity::hooks#log_activity()","loggableactivity::hooks#log_create_activity()","loggableactivity::hooks#log_custom_activity()","loggableactivity::hooks#log_destroy()","loggableactivity::hooks#log_destroy_activity()","loggableactivity::hooks#log_update()","loggableactivity::hooks#log_update_activity()","loggableactivity::encryptionkey#mark_as_deleted()","loggableactivity::activity#must_have_at_least_one_payload()","loggableactivity::hooks#nothing_to_log?()","loggableactivity::activity#ordered_payloads()","loggableactivity::activity#path()","loggableactivity::payload#payload_encryption_key()","loggableactivity::payload#payload_route()","loggableactivity::activity#previous_associations_attrs()","loggableactivity::hooks#primary_encryption_key()","loggableactivity::hooks#primary_encryption_key_deleted?()","loggableactivity::activity#primary_payload()","loggableactivity::activity#primary_payload_attrs()","loggableactivity::updatepayloadsbuilder#primary_update_attrs()","loggableactivity::encryptionkey::random_key()","loggableactivity::activity#record_display_name()","loggableactivity::activity#record_key()","loggableactivity::updatepayloadsbuilder#relation_encrypted_attrs()","loggableactivity::activity#relations_attrs()","loggableactivity::activity#update_activity_attrs()","loggableactivity::activity#update_attrs()","loggableactivity::activity#updated_relations_attrs()"],"info":[["LoggableActivity","","LoggableActivity.html","","<p>Version of the gem\n"],["LoggableActivity::Activity","","LoggableActivity/Activity.html","","<p>Represents one action in the activity log.\n"],["LoggableActivity::Configuration","","LoggableActivity/Configuration.html","","<p>This class is used to load the configuration file located at config/loggable_activity.yml\n"],["LoggableActivity::Encryption","","LoggableActivity/Encryption.html","","<p>This module is used to encrypt and decrypt attributes\n"],["LoggableActivity::EncryptionError","","LoggableActivity/EncryptionError.html","","<p>This error is raised when encryption or decryption fails\n"],["LoggableActivity::EncryptionKey","","LoggableActivity/EncryptionKey.html","","<p>This class represents the encryption key used to unlock the data for one payload. When deleted, only …\n"],["LoggableActivity::Hooks","","LoggableActivity/Hooks.html","","<p>This module provides hooks for creating activities when included in a model.\n"],["LoggableActivity::Payload","","LoggableActivity/Payload.html","","<p>This class represents a payload in the log, containing encrypted data of one record in the database. …\n"],["LoggableActivity::PayloadsBuilder","","LoggableActivity/PayloadsBuilder.html","","<p>This module is responsible for building payloads used in loggable activities.\n"],["LoggableActivity::UpdatePayloadsBuilder","","LoggableActivity/UpdatePayloadsBuilder.html","","<p>This module is responsible for building update payloads used in loggable activities.\n"],["action_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-action_key","()","<p>Returns the action key for the current action.\n"],["activities_for_actor","LoggableActivity::Activity","LoggableActivity/Activity.html#method-c-activities_for_actor","(actor, limit = 20, params = { offset: 0 })","<p>Returns a list of activities for a given actor.\n"],["actor_display_name","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-actor_display_name","()","<p>Returns the display name for a actor. what method to use if defined in ‘/config/loggable_activity.yaml’ …\n"],["actor_display_name_field","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-actor_display_name_field","()","<p>Returns the display name of the actor.\n"],["actor_encryption_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-actor_encryption_key","()","<p>Returns the encryption key for the actor.\n"],["actor_key","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-actor_key","()","<p>Returns the key for the actor.\n"],["associated_record_encryption_key","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-associated_record_encryption_key","(associated_record, data_owner)","<p>Retrieves the encryption key for the associated record.\n<p>@param associated_record [ActiveRecord::Base] …\n"],["attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-attrs","()","<p>Returns an array of hashes, each representing an activity’s attributes and its associated relations. …\n"],["attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-attrs","()","<p>Returns the decrypted attributes of the payload based on its type.\n<p>@return [Hash] The decrypted attributes. …\n"],["base_action","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-base_action","()","<p>Convert the model name and name space in to ‘base_action’.\n"],["blank?","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-blank-3F","(value)","<p>Returns true if the given value is blank\n"],["build_associated_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_associated_payload","(associated_record, relation_config)","<p>Builds the payload for an associated record.\n"],["build_destroy_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_destroy_payload","()","<p>Builds the payload for destroyed records.\n"],["build_has_many_payloads","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_has_many_payloads","(relation_config, relation_type)","<p>Builds payloads for has_many relations.\n"],["build_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_payload","(relation_config, relation_type)","<p>Builds the payload for a specific relation.\n<p>@param relation_config [Hash] The configuration of the relation. …\n"],["build_payloads","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_payloads","()","<p>Builds payloads for the loggable activity.\n\n<pre>Example:\n build_payloads\n\nReturns:\n #&lt;LoggableActivity::Payload:0x0000000109658718&gt; ...</pre>\n"],["build_primary_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_primary_payload","()","<p>Builds the primary payload.\n"],["build_primary_update_payload","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_primary_update_payload","(previous_values, current_values)","<p>Builds the primary update payload.\n"],["build_relation_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_relation_payload","(relation_config)","<p>Builds payloads for relations\n<p>@param relation_config [Hash] The configuration of the relation.\n"],["build_relation_update_for_belongs_to","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_belongs_to","(relation_config)","<p>Builds the update payload for a belongs_to relation.\n"],["build_relation_update_for_has_many","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_has_many","(relation_config)","<p>Builds the update payload for a has_many relation.\n"],["build_relation_update_for_has_one","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_has_one","(relation_config)","<p>Builds the update payload for a has_one relation.\n"],["build_relation_update_payload","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_payload","(relation_config, record, payload_type)","<p>Builds the update payload for a relation.\n"],["build_update_payloads","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_update_payloads","()","<p>Builds payloads for an activity update event.\n"],["build_update_relation_payloads","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_update_relation_payloads","(relation_config)","<p>Builds update payloads for relations.\n"],["create_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-create_activity","(payloads)","<p>Creates an activity with the specified payloads.\n"],["create_encryption_key","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-create_encryption_key","(record_type, record_id, parent_key = nil)","<p>Creates an encryption key for a record, optionally using a parent key.\n\n<pre>@param record_type [String] The ...</pre>\n"],["current_user_model?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-current_user_model-3F","()","<p>Returns the model name of the current user.\n"],["decrypt","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-decrypt","(data, encoded_key)","<p>Decrypts the given data using the given encryption key\n<p>Example:\n\n<pre>LoggableActivity::Encryption.decrypt(&#39;SOME_ENCRYPTED_STRING&#39;, ...</pre>\n"],["decrypt_attr","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypt_attr","(value)","<p>Decrypts a single attribute.\n<p>@param value [String] The encrypted value to decrypt. @return [String] The …\n"],["decrypted_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_attrs","()","<p>Decrypts all attributes.\n<p>@return [Hash] The decrypted attributes.\n"],["decrypted_from_to_attr","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_from_to_attr","(change)","<p>Decrypts ‘from’ and ‘to’ attributes.\n<p>@param change [Hash] The change hash containing ‘from’ …\n"],["decrypted_update_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_update_attrs","()","<p>Decrypts the ‘from’ and ‘to’ attributes in the update payload.\n<p>@return [Array&lt;Hash&gt;] …\n"],["deleted_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-deleted_attrs","()","<p>Helper method to handle deleted attributes.\n<p>@return [Hash] The hash with deleted attributes.\n"],["encrypt","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-encrypt","(data, encoded_key)","<p>Encrypts the given data using the given encryption key\n<p>Example:\n\n<pre>LoggableActivity::Encryption.encrypt(&#39;my ...</pre>\n"],["encrypt_attr","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-encrypt_attr","(attrs, encryption_key)","<p>Encrypts a single attribute.\n<p>@param attrs [Hash] The attributes to be encrypted. @param encryption_key …\n"],["encrypt_attrs","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-encrypt_attrs","(attrs, loggable_attrs, encryption_key)","<p>Encrypts attributes.\n<p>@param attrs [Hash] The attributes to be encrypted. @param loggable_attrs [Array&lt;String&gt;] …\n"],["encrypted_actor_name","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-encrypted_actor_name","()","<p>Returns the encrypted name of the actor.\n"],["encrypted_record_name","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-encrypted_record_name","()","<p>Returns the encrypted name of the record.\n"],["encrypted_update_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-encrypted_update_attrs","(previous_values, current_values)","<p>Returns the encrypted attributes for the update payload.\n"],["for_class","LoggableActivity::Configuration","LoggableActivity/Configuration.html#method-c-for_class","(class_name)","<p>Returns the configuration data for the given class\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-constant\">LoggableActivity</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Configuration</span>.<span class=\"ruby-identifier\">for_class</span>(<span class=\"ruby-string\">&#39;User&#39;</span>)\n</pre>\n"],["for_record","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-for_record","(record, parent_key = nil)","<p>Returns an encryption key for a record, optionally using a parent key.\n\n<pre>@param record [ActiveRecord::Base] ...</pre>\n"],["for_record_by_type_and_id","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-for_record_by_type_and_id","(record_type, record_id, parent_key = nil)","<p>Returns an encryption key for a record by its type and ID, optionally using a parent key.\n\n<pre>@param record_type ...</pre>\n"],["last","LoggableActivity::Activity","LoggableActivity/Activity.html#method-c-last","(limit = 1)","<p>Returns the last activity.\n"],["latest","LoggableActivity::Activity","LoggableActivity/Activity.html#method-c-latest","(limit = 20, params = { offset: 0 })","<p>Returns a list of activities ordered by creation date.\n"],["load_config_file","LoggableActivity::Configuration","LoggableActivity/Configuration.html#method-c-load_config_file","(config_file_path)","<p>Loads the configuration file\n"],["log","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log","(action, actor: nil, params: {})","<p>Logs an activity with the specified action, actor, and params.\n\n<pre>@param action [Symbol] The action to log ...</pre>\n"],["log_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_activity","()","<p>Logs an activity for the current action.\n"],["log_create_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_create_activity","()","<p>Logs a create activity automatically if configured.\n"],["log_custom_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_custom_activity","(activity)","<p>Logs a custom activity.\n"],["log_destroy","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_destroy","()","<p>Logs an activity for the destroy action.\n"],["log_destroy_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_destroy_activity","()","<p>Logs a destroy activity automatically if configured.\n"],["log_update","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_update","()","<p>Logs an activity for the update action.\n"],["log_update_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_update_activity","()","<p>Logs an update activity automatically if configured.\n"],["mark_as_deleted","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-i-mark_as_deleted","()","<p>Marks the encryption key as deleted by updating the key to nil.\n"],["must_have_at_least_one_payload","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-must_have_at_least_one_payload","()","<p>Validates that the activity has at least one payload.\n"],["nothing_to_log?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-nothing_to_log-3F","(payloads)","<p>Returns true if there are no payloads to log.\n"],["ordered_payloads","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-ordered_payloads","()","<p>Returns payloads sorted by :payload_type.\n"],["path","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-path","()","<p>Returns the path for the activity.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">path</span>\n</pre>\n"],["payload_encryption_key","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-payload_encryption_key","()","<p>Retrieves the encryption key for the payload.\n<p>@return [String, nil] The encryption key.\n"],["payload_route","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-payload_route","()","<p>Returns the route for the payload.\n"],["previous_associations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-previous_associations_attrs","()","<p>Returns the previous association attributes.\n"],["primary_encryption_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-primary_encryption_key","()","<p>Returns the primary encryption key for the activity\n"],["primary_encryption_key_deleted?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-primary_encryption_key_deleted-3F","()","<p>Returns true if the primary encryption key is deleted.\n"],["primary_payload","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-primary_payload","()","<p>Returns the primary payload.\n"],["primary_payload_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-primary_payload_attrs","()","<p>Returns the attributes for the primary payload, without the relations.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">primary_payload_attrs</span>\n</pre>\n"],["primary_update_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-primary_update_attrs","()","<p>Fetch the previous and current values of the primary record.\n"],["random_key","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-random_key","()","<p>Generates a random encryption key.\n\n<pre>@return [String] The generated encryption key.</pre>\n<p>Example:\n"],["record_display_name","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-record_display_name","()","<p>Returns the display name for a record. what method to use if defined in ‘/config/loggable_activity.yaml’ …\n"],["record_key","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-record_key","()","<p>Returns the key for the logged record.\n"],["relation_encrypted_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-relation_encrypted_attrs","(attrs, loggable_attrs, encryption_key)","<p>Returns the encrypted attributes for a relation.\n"],["relations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-relations_attrs","()","<p>Returns the attributes for the relations.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">relations_attrs</span>\n</pre>\n"],["update_activity_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-update_activity_attrs","()","<p>Returns a hash describing the attributes of an update activity, including updated attributes for a record …\n"],["update_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-update_attrs","()","<p>Returns the attributes for the update+payload.\n"],["updated_relations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-updated_relations_attrs","()","<p>Returns the attributes for the updated relations.\n"]]}}
Binary file
@@ -154,14 +154,14 @@
154
154
  <span class="container">LoggableActivity::PayloadsBuilder</span>
155
155
 
156
156
  <li class="method">
157
- <a href="LoggableActivity/Activity.html#method-i-attrs">#attrs</a>
157
+ <a href="LoggableActivity/Payload.html#method-i-attrs">#attrs</a>
158
158
  &mdash;
159
- <span class="container">LoggableActivity::Activity</span>
159
+ <span class="container">LoggableActivity::Payload</span>
160
160
 
161
161
  <li class="method">
162
- <a href="LoggableActivity/Payload.html#method-i-attrs">#attrs</a>
162
+ <a href="LoggableActivity/Activity.html#method-i-attrs">#attrs</a>
163
163
  &mdash;
164
- <span class="container">LoggableActivity::Payload</span>
164
+ <span class="container">LoggableActivity::Activity</span>
165
165
 
166
166
  <li class="method">
167
167
  <a href="LoggableActivity/Hooks.html#method-i-base_action">#base_action</a>
@@ -358,11 +358,21 @@
358
358
  &mdash;
359
359
  <span class="container">LoggableActivity::Activity</span>
360
360
 
361
+ <li class="method">
362
+ <a href="LoggableActivity/Activity.html#method-i-path">#path</a>
363
+ &mdash;
364
+ <span class="container">LoggableActivity::Activity</span>
365
+
361
366
  <li class="method">
362
367
  <a href="LoggableActivity/Payload.html#method-i-payload_encryption_key">#payload_encryption_key</a>
363
368
  &mdash;
364
369
  <span class="container">LoggableActivity::Payload</span>
365
370
 
371
+ <li class="method">
372
+ <a href="LoggableActivity/Payload.html#method-i-payload_route">#payload_route</a>
373
+ &mdash;
374
+ <span class="container">LoggableActivity::Payload</span>
375
+
366
376
  <li class="method">
367
377
  <a href="LoggableActivity/Activity.html#method-i-previous_associations_attrs">#previous_associations_attrs</a>
368
378
  &mdash;
@@ -10,7 +10,9 @@ module LoggableActivity
10
10
  class_option :template, type: :string, default: 'erb'
11
11
 
12
12
  def create_helper
13
- copy_file 'helpers/loggable_activity_helper.rb', 'app/helpers/loggable_activity_helper.rb'
13
+ copy_file 'helpers/activity_helper.rb', 'app/helpers/loggable_activity/activity_helper.rb'
14
+ copy_file 'helpers/routes_helper.rb', 'app/helpers/loggable_activity/routes_helper.rb'
15
+ copy_file 'helpers/router.rb', 'app/helpers/loggable_activity/router.rb'
14
16
  end
15
17
 
16
18
  def create_views
@@ -17,6 +17,7 @@ class CreateLoggableActivities < ActiveRecord::Migration[6.1]
17
17
  t.json :encrypted_attrs
18
18
  t.integer :payload_type, default: 0
19
19
  t.boolean :data_owner, default: false
20
+ t.string :route, default: nil
20
21
  t.references :activity, foreign_key: { to_table: 'loggable_activities', class_name: 'LoggableActivity::Activity' }
21
22
 
22
23
  t.timestamps
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LoggableActivity
4
+ module ActivityHelper
5
+ # include ApplicationHelper
6
+ include LoggableActivity::Router
7
+
8
+ def render_activity(activity)
9
+ render partial: template_path(activity), locals: { activity: }
10
+ end
11
+
12
+ # def relation_type(relation_attrs)
13
+ # title = I18n.t("loggable.activity.models.#{relation_attrs[:record_type]}")
14
+ # if path = path_to_payload(relation_attrs[:path])
15
+ # path
16
+ # else
17
+ # title
18
+ # end
19
+ # end
20
+
21
+ private
22
+
23
+ def action_template_path(activity)
24
+ "loggable_activity/templates/#{activity.action.gsub('.', '/')}"
25
+ end
26
+
27
+ def template_path(activity)
28
+ template_path = action_template_path(activity)
29
+ if lookup_context.template_exists?(template_path, [], true)
30
+ template_path
31
+ else
32
+ action = activity.action.split('.').last || 'default'
33
+ "loggable_activity/templates/default/#{action}"
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'action_view'
4
+
5
+ module LoggableActivity
6
+ module Router
7
+ # include ApplicationHelper
8
+ include LoggableActivity::RoutesHelper
9
+
10
+ def primary_activity_text_or_link(activity)
11
+ route = activity.primary_route
12
+ text = text_for_link(route)
13
+ return text if route.nil?
14
+ return text if activity.record.nil?
15
+
16
+ url = url_to_record(route, activity.record)
17
+ return text unless url.present?
18
+
19
+ link_to(text, url)
20
+ end
21
+
22
+ def payload_type_text_or_link(attrs)
23
+ route = attrs[:route]
24
+ return model_translation(attrs) if route.nil?
25
+
26
+ record = find_record(attrs)
27
+ return model_translation(attrs) if record.nil?
28
+
29
+ text = text_for_link(route)
30
+
31
+ url = url_to_record(route, record)
32
+ return text if url.nil?
33
+
34
+ link_to(text, url)
35
+ end
36
+
37
+ private
38
+
39
+ def text_for_link(route)
40
+ I18n.t("loggable.activity.routes.#{route}")
41
+ end
42
+
43
+ def model_translation(attrs)
44
+ I18n.t("loggable.activity.models.#{attrs[:record_type]}")
45
+ end
46
+
47
+ def find_record(attrs)
48
+ record_class = attrs[:record_type].constantize
49
+ record_class.find(attrs[:record_id])
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LoggableActivity
4
+ module RoutesHelper
5
+ include ApplicationHelper
6
+
7
+ def url_to_record(route, record)
8
+ case route
9
+ when 'show_doctor', 'show_patient', 'show_user', 'show_user_profile'
10
+ demo_user_url(record)
11
+ when 'show_demo_address'
12
+ demo_city_demo_address_url(record.demo_city, record)
13
+ when 'show_demo_city'
14
+ demo_city_url(record)
15
+ when 'show_demo_journal'
16
+ demo_journal_url(record)
17
+ end
18
+ end
19
+ end
20
+ end