Skip to content

Commit c8067b4

Browse files
committed
Add function to delete a publication's search indices
1 parent 6dc7546 commit c8067b4

File tree

2 files changed

+28
-18
lines changed

2 files changed

+28
-18
lines changed

publication/lib/field_publication/publications.ex

+2-1
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,8 @@ defmodule FieldPublication.Publications do
307307
{:ok, %{status: status}} when status in [200, 404] <-
308308
delete_hierarchy_doc(publication),
309309
{:ok, %{status: status}} when status in [200, 404] <-
310-
CouchService.delete_database(database) do
310+
CouchService.delete_database(database),
311+
:ok <- Search.delete_search_indices(publication) do
311312
{:ok, :deleted}
312313
else
313314
error ->

publication/lib/field_publication/publications/search.ex

+26-17
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,14 @@ defmodule FieldPublication.Publications.Search do
6868
}
6969
end
7070

71-
def initialize_search_indices(%Publication{} = pub) do
72-
publication_alias = get_search_alias(pub)
71+
def initialize_search_indices(%Publication{} = publication) do
72+
publication_alias = get_search_alias(publication)
7373

7474
index_a = "#{publication_alias}__a__"
7575
index_b = "#{publication_alias}__b__"
7676

7777
project_alias =
78-
pub.project_name
78+
publication.project_name
7979
|> Projects.get!()
8080
|> get_search_alias()
8181

@@ -103,8 +103,17 @@ defmodule FieldPublication.Publications.Search do
103103
OpenSearchService.set_alias(index_a, publication_alias)
104104
end
105105

106-
def switch_active_alias(%Publication{} = pub) do
107-
publication_alias = get_search_alias(pub)
106+
def delete_search_indices(%Publication{} = publication) do
107+
publication_alias = get_search_alias(publication)
108+
109+
OpenSearchService.delete_index("#{publication_alias}__a__")
110+
OpenSearchService.delete_index("#{publication_alias}__b__")
111+
112+
:ok
113+
end
114+
115+
def switch_active_alias(%Publication{} = publication) do
116+
publication_alias = get_search_alias(publication)
108117

109118
old_index =
110119
publication_alias
@@ -122,7 +131,7 @@ defmodule FieldPublication.Publications.Search do
122131
OpenSearchService.set_alias(next_index, publication_alias)
123132

124133
project_alias =
125-
pub.project_name
134+
publication.project_name
126135
|> Projects.get!()
127136
|> get_search_alias()
128137

@@ -136,8 +145,8 @@ defmodule FieldPublication.Publications.Search do
136145
:ok
137146
end
138147

139-
def reset_inactive_index(%Publication{} = pub, mapping) do
140-
publication_alias = get_search_alias(pub)
148+
def reset_inactive_index(%Publication{} = publication, mapping) do
149+
publication_alias = get_search_alias(publication)
141150

142151
inactive_index =
143152
publication_alias
@@ -149,11 +158,11 @@ defmodule FieldPublication.Publications.Search do
149158
OpenSearchService.create_index(inactive_index, mapping)
150159
end
151160

152-
def set_project_alias(%Publication{} = pub) do
153-
publication_alias = get_search_alias(pub)
161+
def set_project_alias(%Publication{} = publication) do
162+
publication_alias = get_search_alias(publication)
154163

155164
project_alias =
156-
pub.project_name
165+
publication.project_name
157166
|> Projects.get!()
158167
|> get_search_alias()
159168

@@ -174,9 +183,9 @@ defmodule FieldPublication.Publications.Search do
174183
OpenSearchService.set_alias(next_index, project_alias)
175184
end
176185

177-
def clear_project_alias(%Publication{} = pub) do
186+
def clear_project_alias(%Publication{} = publication) do
178187
project_alias =
179-
pub.project_name
188+
publication.project_name
180189
|> Projects.get!()
181190
|> get_search_alias()
182191

@@ -188,15 +197,15 @@ defmodule FieldPublication.Publications.Search do
188197
OpenSearchService.remove_alias(index, project_alias)
189198
end
190199

191-
def get_doc_count(%Publication{} = pub) do
192-
pub
200+
def get_doc_count(%Publication{} = publication) do
201+
publication
193202
|> get_search_alias()
194203
|> OpenSearchService.get_doc_count()
195204
end
196205

197-
def index_documents(docs, %Publication{} = pub, inactive_alias \\ true) do
206+
def index_documents(docs, %Publication{} = publication, inactive_alias \\ true) do
198207
index =
199-
get_search_alias(pub)
208+
get_search_alias(publication)
200209
|> OpenSearchService.get_indices_behind_alias()
201210
|> List.first()
202211

0 commit comments

Comments
 (0)