Add import functionality
[akkoma] / lib / pleroma / elasticsearch / store.ex
1 defmodule Pleroma.Elasticsearch do
2 alias Pleroma.Activity
3 alias Pleroma.Elasticsearch.DocumentMappings
4
5 defp url do
6 Pleroma.Config.get([:elasticsearch, :url])
7 end
8
9 def put(%Activity{} = activity) do
10 Elastix.Document.index(
11 url(),
12 "activities",
13 "activity",
14 DocumentMappings.Activity.id(activity),
15 DocumentMappings.Activity.encode(activity)
16 )
17 end
18
19 def bulk_post(data, :activities) do
20 d = data
21 |> Enum.map(fn d ->
22 [
23 %{index: %{_id: DocumentMappings.Activity.id(d)}},
24 DocumentMappings.Activity.encode(d)
25 ]
26 end)
27 |> List.flatten()
28
29 IO.inspect Elastix.Bulk.post(
30 url(),
31 d,
32 index: "activities",
33 type: "activity"
34 )
35 end
36 end