Skip to content

Commit c5183e3

Browse files
authored
Add 401 for unauthorized access (#16)
1 parent 2926af7 commit c5183e3

16 files changed

Lines changed: 629 additions & 87 deletions

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## major.minor.patch (yyyy.mm.dd)
99

10+
## 0.6.1 (2025.01.19)
11+
12+
### Added
13+
14+
* `401` status code for unauthorized access
15+
1016
## 0.6.0 (2025.01.19)
1117

1218
### Changed

lib/open_api_typesense/operations/analytics.ex

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ defmodule OpenApiTypesense.Analytics do
6060
request: [{"application/json", {OpenApiTypesense.AnalyticsEventCreateSchema, :t}}],
6161
response: [
6262
{201, {OpenApiTypesense.AnalyticsEventCreateResponse, :t}},
63-
{400, {OpenApiTypesense.ApiResponse, :t}}
63+
{400, {OpenApiTypesense.ApiResponse, :t}},
64+
{401, {OpenApiTypesense.ApiResponse, :t}}
6465
],
6566
opts: opts
6667
})
@@ -120,6 +121,7 @@ defmodule OpenApiTypesense.Analytics do
120121
response: [
121122
{201, {OpenApiTypesense.AnalyticsRuleSchema, :t}},
122123
{400, {OpenApiTypesense.ApiResponse, :t}},
124+
{401, {OpenApiTypesense.ApiResponse, :t}},
123125
{404, {OpenApiTypesense.ApiResponse, :t}}
124126
],
125127
opts: opts
@@ -177,6 +179,7 @@ defmodule OpenApiTypesense.Analytics do
177179
method: :delete,
178180
response: [
179181
{200, {OpenApiTypesense.AnalyticsRuleDeleteResponse, :t}},
182+
{401, {OpenApiTypesense.ApiResponse, :t}},
180183
{404, {OpenApiTypesense.ApiResponse, :t}}
181184
],
182185
opts: opts
@@ -234,6 +237,7 @@ defmodule OpenApiTypesense.Analytics do
234237
method: :get,
235238
response: [
236239
{200, {OpenApiTypesense.AnalyticsRuleSchema, :t}},
240+
{401, {OpenApiTypesense.ApiResponse, :t}},
237241
{404, {OpenApiTypesense.ApiResponse, :t}}
238242
],
239243
opts: opts
@@ -247,7 +251,8 @@ defmodule OpenApiTypesense.Analytics do
247251
248252
"""
249253
@spec retrieve_analytics_rules ::
250-
{:ok, OpenApiTypesense.AnalyticsRulesRetrieveSchema.t()} | :error
254+
{:ok, OpenApiTypesense.AnalyticsRulesRetrieveSchema.t()}
255+
| {:error, OpenApiTypesense.ApiResponse.t()}
251256
def retrieve_analytics_rules do
252257
retrieve_analytics_rules(Connection.new())
253258
end
@@ -259,7 +264,8 @@ defmodule OpenApiTypesense.Analytics do
259264
- `retrieve_analytics_rules(Connection.new())`
260265
"""
261266
@spec retrieve_analytics_rules(map() | Connection.t() | keyword()) ::
262-
{:ok, OpenApiTypesense.AnalyticsRulesRetrieveSchema.t()} | :error
267+
{:ok, OpenApiTypesense.AnalyticsRulesRetrieveSchema.t()}
268+
| {:error, OpenApiTypesense.ApiResponse.t()}
263269
def retrieve_analytics_rules(opts) when is_list(opts) do
264270
retrieve_analytics_rules(Connection.new(), opts)
265271
end
@@ -274,7 +280,8 @@ defmodule OpenApiTypesense.Analytics do
274280
- `retrieve_analytics_rules(Connection.new(), opts)`
275281
"""
276282
@spec retrieve_analytics_rules(map() | Connection.t(), keyword()) ::
277-
{:ok, OpenApiTypesense.AnalyticsRulesRetrieveSchema.t()} | :error
283+
{:ok, OpenApiTypesense.AnalyticsRulesRetrieveSchema.t()}
284+
| {:error, OpenApiTypesense.ApiResponse.t()}
278285
def retrieve_analytics_rules(conn, opts) when not is_struct(conn) and is_map(conn) do
279286
retrieve_analytics_rules(Connection.new(conn), opts)
280287
end
@@ -287,7 +294,10 @@ defmodule OpenApiTypesense.Analytics do
287294
call: {OpenApiTypesense.Analytics, :retrieve_analytics_rules},
288295
url: "/analytics/rules",
289296
method: :get,
290-
response: [{200, {OpenApiTypesense.AnalyticsRulesRetrieveSchema, :t}}],
297+
response: [
298+
{200, {OpenApiTypesense.AnalyticsRulesRetrieveSchema, :t}},
299+
{401, {OpenApiTypesense.ApiResponse, :t}}
300+
],
291301
opts: opts
292302
})
293303
end
@@ -350,7 +360,8 @@ defmodule OpenApiTypesense.Analytics do
350360
request: [{"application/json", {OpenApiTypesense.AnalyticsRuleUpsertSchema, :t}}],
351361
response: [
352362
{200, {OpenApiTypesense.AnalyticsRuleSchema, :t}},
353-
{400, {OpenApiTypesense.ApiResponse, :t}}
363+
{400, {OpenApiTypesense.ApiResponse, :t}},
364+
{401, {OpenApiTypesense.ApiResponse, :t}}
354365
],
355366
opts: opts
356367
})

lib/open_api_typesense/operations/collections.ex

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ defmodule OpenApiTypesense.Collections do
8080
response: [
8181
{201, {OpenApiTypesense.CollectionResponse, :t}},
8282
{400, {OpenApiTypesense.ApiResponse, :t}},
83+
{401, {OpenApiTypesense.ApiResponse, :t}},
8384
{409, {OpenApiTypesense.ApiResponse, :t}}
8485
],
8586
opts: opts
@@ -132,6 +133,7 @@ defmodule OpenApiTypesense.Collections do
132133
method: :delete,
133134
response: [
134135
{200, {OpenApiTypesense.CollectionAlias, :t}},
136+
{401, {OpenApiTypesense.ApiResponse, :t}},
135137
{404, {OpenApiTypesense.ApiResponse, :t}}
136138
],
137139
opts: opts
@@ -189,6 +191,7 @@ defmodule OpenApiTypesense.Collections do
189191
method: :delete,
190192
response: [
191193
{200, {OpenApiTypesense.CollectionResponse, :t}},
194+
{401, {OpenApiTypesense.ApiResponse, :t}},
192195
{404, {OpenApiTypesense.ApiResponse, :t}}
193196
],
194197
opts: opts
@@ -243,6 +246,7 @@ defmodule OpenApiTypesense.Collections do
243246
method: :get,
244247
response: [
245248
{200, {OpenApiTypesense.CollectionAlias, :t}},
249+
{401, {OpenApiTypesense.ApiResponse, :t}},
246250
{404, {OpenApiTypesense.ApiResponse, :t}}
247251
],
248252
opts: opts
@@ -254,7 +258,9 @@ defmodule OpenApiTypesense.Collections do
254258
255259
List all aliases and the corresponding collections that they map to.
256260
"""
257-
@spec get_aliases :: {:ok, OpenApiTypesense.CollectionAliasesResponse.t()} | :error
261+
@spec get_aliases ::
262+
{:ok, OpenApiTypesense.CollectionAliasesResponse.t()}
263+
| {:error, OpenApiTypesense.ApiResponse.t()}
258264
def get_aliases do
259265
get_aliases(Connection.new())
260266
end
@@ -266,7 +272,8 @@ defmodule OpenApiTypesense.Collections do
266272
- `get_aliases(Connection.new())`
267273
"""
268274
@spec get_aliases(map() | Connection.t() | keyword()) ::
269-
{:ok, OpenApiTypesense.CollectionAliasesResponse.t()} | :error
275+
{:ok, OpenApiTypesense.CollectionAliasesResponse.t()}
276+
| {:error, OpenApiTypesense.ApiResponse.t()}
270277
def get_aliases(opts) when is_list(opts) do
271278
get_aliases(Connection.new(), opts)
272279
end
@@ -281,7 +288,8 @@ defmodule OpenApiTypesense.Collections do
281288
- `get_aliases(Connection.new(), opts)`
282289
"""
283290
@spec get_aliases(map() | Connection.t(), keyword()) ::
284-
{:ok, OpenApiTypesense.CollectionAliasesResponse.t()} | :error
291+
{:ok, OpenApiTypesense.CollectionAliasesResponse.t()}
292+
| {:error, OpenApiTypesense.ApiResponse.t()}
285293
def get_aliases(conn, opts) when not is_struct(conn) and is_map(conn) do
286294
get_aliases(Connection.new(conn), opts)
287295
end
@@ -294,7 +302,10 @@ defmodule OpenApiTypesense.Collections do
294302
call: {OpenApiTypesense.Collections, :get_aliases},
295303
url: "/aliases",
296304
method: :get,
297-
response: [{200, {OpenApiTypesense.CollectionAliasesResponse, :t}}],
305+
response: [
306+
{200, {OpenApiTypesense.CollectionAliasesResponse, :t}},
307+
{401, {OpenApiTypesense.ApiResponse, :t}}
308+
],
298309
opts: opts
299310
})
300311
end
@@ -350,6 +361,7 @@ defmodule OpenApiTypesense.Collections do
350361
method: :get,
351362
response: [
352363
{200, {OpenApiTypesense.CollectionResponse, :t}},
364+
{401, {OpenApiTypesense.ApiResponse, :t}},
353365
{404, {OpenApiTypesense.ApiResponse, :t}}
354366
],
355367
opts: opts
@@ -368,7 +380,9 @@ defmodule OpenApiTypesense.Collections do
368380
* `exclude_fields`: Exclude the field definitions from being returned in the response.
369381
370382
"""
371-
@spec get_collections :: {:ok, [OpenApiTypesense.CollectionResponse.t()]} | :error
383+
@spec get_collections ::
384+
{:ok, [OpenApiTypesense.CollectionResponse.t()]}
385+
| {:error, OpenApiTypesense.ApiResponse.t()}
372386
def get_collections, do: get_collections(Connection.new())
373387

374388
@doc """
@@ -378,7 +392,8 @@ defmodule OpenApiTypesense.Collections do
378392
- `get_collections(exclude_fields: "fields", limit: 10)`
379393
"""
380394
@spec get_collections(map() | Connection.t() | keyword()) ::
381-
{:ok, [OpenApiTypesense.CollectionResponse.t()]} | :error
395+
{:ok, [OpenApiTypesense.CollectionResponse.t()]}
396+
| {:error, OpenApiTypesense.ApiResponse.t()}
382397
def get_collections(opts) when is_list(opts) do
383398
get_collections(Connection.new(), opts)
384399
end
@@ -393,7 +408,8 @@ defmodule OpenApiTypesense.Collections do
393408
- `get_collections(Connection.new(), opts)`
394409
"""
395410
@spec get_collections(map() | Connection.t(), keyword()) ::
396-
{:ok, [OpenApiTypesense.CollectionResponse.t()]} | :error
411+
{:ok, [OpenApiTypesense.CollectionResponse.t()]}
412+
| {:error, OpenApiTypesense.ApiResponse.t()}
397413
def get_collections(conn, opts) when not is_struct(conn) do
398414
get_collections(Connection.new(conn), opts)
399415
end
@@ -408,7 +424,10 @@ defmodule OpenApiTypesense.Collections do
408424
url: "/collections",
409425
method: :get,
410426
query: query,
411-
response: [{200, [{OpenApiTypesense.CollectionResponse, :t}]}],
427+
response: [
428+
{200, [{OpenApiTypesense.CollectionResponse, :t}]},
429+
{401, {OpenApiTypesense.ApiResponse, :t}}
430+
],
412431
opts: opts
413432
})
414433
end
@@ -469,6 +488,7 @@ defmodule OpenApiTypesense.Collections do
469488
response: [
470489
{200, {OpenApiTypesense.CollectionUpdateSchema, :t}},
471490
{400, {OpenApiTypesense.ApiResponse, :t}},
491+
{401, {OpenApiTypesense.ApiResponse, :t}},
472492
{404, {OpenApiTypesense.ApiResponse, :t}}
473493
],
474494
opts: opts
@@ -531,6 +551,7 @@ defmodule OpenApiTypesense.Collections do
531551
response: [
532552
{200, {OpenApiTypesense.CollectionAlias, :t}},
533553
{400, {OpenApiTypesense.ApiResponse, :t}},
554+
{401, {OpenApiTypesense.ApiResponse, :t}},
534555
{404, {OpenApiTypesense.ApiResponse, :t}}
535556
],
536557
opts: opts

0 commit comments

Comments
 (0)