summaryrefslogtreecommitdiff
path: root/src/mango/src/mango_error.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mango/src/mango_error.erl')
-rw-r--r--src/mango/src/mango_error.erl381
1 files changed, 0 insertions, 381 deletions
diff --git a/src/mango/src/mango_error.erl b/src/mango/src/mango_error.erl
deleted file mode 100644
index bb545ad67..000000000
--- a/src/mango/src/mango_error.erl
+++ /dev/null
@@ -1,381 +0,0 @@
-% Licensed under the Apache License, Version 2.0 (the "License"); you may not
-% use this file except in compliance with the License. You may obtain a copy of
-% the License at
-%
-% http://www.apache.org/licenses/LICENSE-2.0
-%
-% Unless required by applicable law or agreed to in writing, software
-% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-% License for the specific language governing permissions and limitations under
-% the License.
-
--module(mango_error).
-
-
--include_lib("couch/include/couch_db.hrl").
-
-
--export([
- info/2
-]).
-
-
-info(mango_idx, {no_usable_index, missing_sort_index}) ->
- {
- 400,
- <<"no_usable_index">>,
- <<"No index exists for this sort, "
- "try indexing by the sort fields.">>
- };
-info(mango_idx, {no_usable_index, missing_sort_index_partitioned}) ->
- {
- 400,
- <<"no_usable_index">>,
- <<"No partitioned index exists for this sort, "
- "try indexing by the sort fields.">>
- };
-info(mango_idx, {no_usable_index, missing_sort_index_global}) ->
- {
- 400,
- <<"no_usable_index">>,
- <<"No global index exists for this sort, try indexing by the sort fields.">>
- };
-info(mango_json_bookmark, {invalid_bookmark, BadBookmark}) ->
- {
- 400,
- <<"invalid_bookmark">>,
- fmt("Invalid bookmark value: ~s", [?JSON_ENCODE(BadBookmark)])
- };
-
-info(mango_cursor_text, {invalid_bookmark, BadBookmark}) ->
- {
- 400,
- <<"invalid_bookmark">>,
- fmt("Invalid bookmark value: ~s", [?JSON_ENCODE(BadBookmark)])
- };
-info(mango_cursor_text, multiple_text_indexes) ->
- {
- 400,
- <<"multiple_text_indexes">>,
- <<"You must specify an index with the `use_index` parameter.">>
- };
-info(mango_cursor_text, {text_search_error, {error, {bad_request, Msg}}})
- when is_binary(Msg) ->
- {
- 400,
- <<"text_search_error">>,
- Msg
- };
-info(mango_cursor_text, {text_search_error, {error, Error}}) ->
- {
- 500,
- <<"text_search_error">>,
- fmt("~p", [Error])
- };
-
-info(mango_fields, {invalid_fields_json, BadFields}) ->
- {
- 400,
- <<"invalid_fields">>,
- fmt("Fields must be an array of strings, not: ~w", [BadFields])
- };
-info(mango_fields, {invalid_field_json, BadField}) ->
- {
- 400,
- <<"invalid_field">>,
- fmt("Invalid JSON for field spec: ~w", [BadField])
- };
-
-info(mango_httpd, error_saving_ddoc) ->
- {
- 500,
- <<"error_saving_ddoc">>,
- <<"Unknown error while saving the design document.">>
- };
-info(mango_httpd, {error_saving_ddoc, <<"conflict">>}) ->
- {
- 500,
- <<"error_saving_ddoc">>,
- <<"Encountered a conflict while saving the design document.">>
- };
-info(mango_httpd, {error_saving_ddoc, Reason}) ->
- {
- 500,
- <<"error_saving_ddoc">>,
- fmt("Unknown error while saving the design document: ~s", [Reason])
- };
-info(mango_httpd, invalid_list_index_params) ->
- {
- 500,
- <<"invalid_list_index_params">>,
- <<"Index parameter ranges: limit > 1, skip > 0" >>
- };
-
-info(mango_idx, {invalid_index_type, BadType}) ->
- {
- 400,
- <<"invalid_index">>,
- fmt("Invalid type for index: ~s", [BadType])
- };
-info(mango_idx, {partitioned_option_mismatch, BadDDoc}) ->
- {
- 400,
- <<"invalid_partitioned_option">>,
- fmt("Requested partitioned option does not match existing value on"
- " design document ~s", [BadDDoc])
- };
-info(mango_idx, invalid_query_ddoc_language) ->
- {
- 400,
- <<"invalid_index">>,
- <<"Invalid design document query language.">>
- };
-info(mango_idx, no_index_definition) ->
- {
- 400,
- <<"invalid_index">>,
- <<"Index is missing its definition.">>
- };
-info(mango_idx, {index_not_implemented, IndexName}) ->
- {
- 501,
- <<"index_not_implemented">>,
- fmt("~s", [IndexName])
- };
-info(mango_idx, {index_service_unavailable, IndexName}) ->
- {
- 503,
- <<"required index service unavailable">>,
- fmt("~s", [IndexName])
- };
-
-info(mango_idx_view, {invalid_index_json, BadIdx}) ->
- {
- 400,
- <<"invalid_index">>,
- fmt("JSON indexes must be an object, not: ~w", [BadIdx])
- };
-info(mango_idx_text, {invalid_index_fields_definition, Def}) ->
- {
- 400,
- <<"invalid_index_fields_definition">>,
- fmt("Text Index field definitions must be of the form
- {\"name\": \"non-empty fieldname\", \"type\":
- \"boolean,number, or string\"}. Def: ~p", [Def])
- };
-info(mango_idx_view, {index_not_found, BadIdx}) ->
- {
- 404,
- <<"invalid_index">>,
- fmt("JSON index ~s not found in this design doc.", [BadIdx])
- };
-
-info(mango_idx_text, {invalid_index_text, BadIdx}) ->
- {
- 400,
- <<"invalid_index">>,
- fmt("Text indexes must be an object, not: ~w", [BadIdx])
- };
-info(mango_idx_text, {index_not_found, BadIdx}) ->
- {
- 404,
- <<"index_not_found">>,
- fmt("Text index ~s not found in this design doc.", [BadIdx])
- };
-info(mango_idx_text, index_all_disabled) ->
- {
- 403,
- <<"index_all_disabled">>,
- <<"New text indexes are forbidden to index all fields.">>
- };
-
-info(mango_opts, {invalid_bulk_docs, Val}) ->
- {
- 400,
- <<"invalid_bulk_docs">>,
- fmt("Bulk Delete requires an array of non-null docids. Docids: ~w",
- [Val])
- };
-info(mango_opts, {invalid_ejson, Val}) ->
- {
- 400,
- <<"invalid_ejson">>,
- fmt("Invalid JSON value: ~w", [Val])
- };
-info(mango_opts, {invalid_key, Key}) ->
- {
- 400,
- <<"invalid_key">>,
- fmt("Invalid key ~s for this request.", [Key])
- };
-info(mango_opts, {missing_required_key, Key}) ->
- {
- 400,
- <<"missing_required_key">>,
- fmt("Missing required key: ~s", [Key])
- };
-info(mango_opts, {invalid_value, Name, Expect, Found}) ->
- {
- 400,
- <<"invalid_value">>,
- fmt("Value for ~s is ~w, should be ~w", [Name, Found, Expect])
- };
-info(mango_opts, {invalid_value, Name, Value}) ->
- {
- 400,
- <<"invalid_value">>,
- fmt("Invalid value for ~s: ~w", [Name, Value])
- };
-info(mango_opts, {invalid_string, Val}) ->
- {
- 400,
- <<"invalid_string">>,
- fmt("Invalid string: ~w", [Val])
- };
-info(mango_opts, {invalid_boolean, Val}) ->
- {
- 400,
- <<"invalid_boolean">>,
- fmt("Invalid boolean value: ~w", [Val])
- };
-info(mango_opts, {invalid_pos_integer, Val}) ->
- {
- 400,
- <<"invalid_pos_integer">>,
- fmt("~w is not an integer greater than zero", [Val])
- };
-info(mango_opts, {invalid_non_neg_integer, Val}) ->
- {
- 400,
- <<"invalid_non_neg_integer">>,
- fmt("~w is not an integer greater than or equal to zero", [Val])
- };
-info(mango_opts, {invalid_object, BadObj}) ->
- {
- 400,
- <<"invalid_object">>,
- fmt("~w is not a JSON object", [BadObj])
- };
-info(mango_opts, {invalid_selector_json, BadSel}) ->
- {
- 400,
- <<"invalid_selector_json">>,
- fmt("Selector must be a JSON object, not: ~w", [BadSel])
- };
-info(mango_opts, {invalid_index_name, BadName}) ->
- {
- 400,
- <<"invalid_index_name">>,
- fmt("Invalid index name: ~w", [BadName])
- };
-
-info(mango_opts, {multiple_text_operator, {invalid_selector, BadSel}}) ->
- {
- 400,
- <<"multiple_text_selector">>,
- fmt("Selector cannot contain more than one $text operator: ~w",
- [BadSel])
- };
-
-info(mango_selector, {invalid_selector, missing_field_name}) ->
- {
- 400,
- <<"invalid_selector">>,
- <<"One or more conditions is missing a field name.">>
- };
-info(mango_selector, {bad_arg, Op, Arg}) ->
- {
- 400,
- <<"bad_arg">>,
- fmt("Bad argument for operator ~s: ~w", [Op, Arg])
- };
-info(mango_selector, {not_supported, Op}) ->
- {
- 400,
- <<"not_supported">>,
- fmt("Unsupported operator: ~s", [Op])
- };
-info(mango_selector, {invalid_operator, Op}) ->
- {
- 400,
- <<"invalid_operator">>,
- fmt("Invalid operator: ~s", [Op])
- };
-info(mango_selector, {bad_field, BadSel}) ->
- {
- 400,
- <<"bad_field">>,
- fmt("Invalid field normalization on selector: ~w", [BadSel])
- };
-
-info(mango_selector_text, {invalid_operator, Op}) ->
- {
- 400,
- <<"invalid_operator">>,
- fmt("Invalid text operator: ~s", [Op])
- };
-info(mango_selector_text, {text_sort_error, Field}) ->
- S = binary_to_list(Field),
- Msg = "Unspecified or ambiguous sort type. Try appending :number or"
- " :string to the sort field. ~s",
- {
- 400,
- <<"text_sort_error">>,
- fmt(Msg, [S])
- };
-
-info(mango_sort, {invalid_sort_json, BadSort}) ->
- {
- 400,
- <<"invalid_sort_json">>,
- fmt("Sort must be an array of sort specs, not: ~p", [BadSort])
- };
-info(mango_sort, {invalid_sort_dir, BadSpec}) ->
- {
- 400,
- <<"invalid_sort_dir">>,
- fmt("Invalid sort direction: ~w", BadSpec)
- };
-info(mango_sort, {invalid_sort_field, BadField}) ->
- {
- 400,
- <<"invalid_sort_field">>,
- fmt("Invalid sort field: ~p", [BadField])
- };
-info(mango_sort, {unsupported, mixed_sort}) ->
- {
- 400,
- <<"unsupported_mixed_sort">>,
- <<"Sorts currently only support a single direction for all fields.">>
- };
-
-info(mango_util, {error_loading_doc, DocId}) ->
- {
- 500,
- <<"internal_error">>,
- fmt("Error loading doc: ~s", [DocId])
- };
-info(mango_util, error_loading_ddocs) ->
- {
- 500,
- <<"internal_error">>,
- <<"Error loading design documents">>
- };
-info(mango_util, {invalid_ddoc_lang, Lang}) ->
- {
- 400,
- <<"invalid_ddoc_lang">>,
- fmt("Existing design doc has an invalid language: ~w", [Lang])
- };
-
-info(Module, Reason) ->
- {
- 500,
- <<"unknown_error">>,
- fmt("Unknown Error: ~s :: ~w", [Module, Reason])
- }.
-
-
-fmt(Format, Args) ->
- iolist_to_binary(io_lib:format(Format, Args)).