Skip to content

Commit c5165ee

Browse files
committed
Реализация первой версии.
1 parent 41e4139 commit c5165ee

File tree

3 files changed

+493
-35
lines changed

3 files changed

+493
-35
lines changed

src/CommonModules/КодОтветаHTTP/Ext/Module.bsl

Lines changed: 195 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,114 @@
9292

9393
КонецФункции
9494

95+
// Определяет к какому классу кодов ответа относится переданный в функции код.
96+
//
97+
// Параметры:
98+
// Код - Число - код ответа HTTP.
99+
//
100+
// Возвращаемое значение:
101+
// - Строка - возможные значения: "Информация", "Успех", "Перенаправление", "ОшибкаКлиента", "ОшибкаСервера".
102+
//
103+
Функция КлассКодаОтвета( Знач Код ) Экспорт
104+
105+
Перем КодСуществует;
106+
Перем КлассКодаОтвета;
107+
Перем Результат;
108+
109+
Перем ПервыйКласс;
110+
Перем ПоследнийКласс;
111+
Перем Знаменатель;
112+
113+
КодСуществует = ( НайтиИдентификаторПоКоду( Код ) <> Неопределено );
114+
115+
Результат = Неопределено;
116+
Если ( НЕ КодСуществует ) Тогда
117+
Возврат Результат;
118+
КонецЕсли;
119+
120+
Знаменатель = 100;
121+
КлассКодаОтвета = Цел( Код / Знаменатель );
122+
123+
ПервыйКласс = 1;
124+
ПоследнийКласс = 5;
125+
Если ( КлассКодаОтвета < ПервыйКласс И КлассКодаОтвета > ПоследнийКласс ) Тогда
126+
Возврат Результат;
127+
КонецЕсли;
128+
129+
Возврат КлассыКодовОтвета()[ КлассКодаОтвета - 1 ];
130+
131+
КонецФункции
132+
133+
// Определяет относится ли переданный в функцию код к информационному классу кодов.
134+
//
135+
// Параметры:
136+
// Код - Число - код ответа HTTP.
137+
//
138+
// Возвращаемое значение:
139+
// - Булево - Истина, код относится к классу "Информация", иначе - Ложь.
140+
//
141+
Функция ЭтоИнформация( Знач Код ) Экспорт
142+
143+
Возврат ( КлассКодаОтвета( Код ) = "Информация" );
144+
145+
КонецФункции
146+
147+
// Определяет относится ли переданный в функцию код к классу кодов "Успех".
148+
//
149+
// Параметры:
150+
// Код - Число - код ответа HTTP.
151+
//
152+
// Возвращаемое значение:
153+
// - Булево - Истина, код относится к классу "Успех", иначе - Ложь.
154+
//
155+
Функция ЭтоУспех( Знач Код ) Экспорт
156+
157+
Возврат ( КлассКодаОтвета( Код ) = "Успех" );
158+
159+
КонецФункции
160+
161+
// Определяет относится ли переданный в функцию код к классу кодов "Перенаправление".
162+
//
163+
// Параметры:
164+
// Код - Число - код ответа HTTP.
165+
//
166+
// Возвращаемое значение:
167+
// - Булево - Истина, код относится к классу "Перенаправление", иначе - Ложь.
168+
//
169+
Функция ЭтоПеренаправление( Знач Код ) Экспорт
170+
171+
Возврат ( КлассКодаОтвета( Код ) = "Перенаправление" );
172+
173+
КонецФункции
174+
175+
// Определяет относится ли переданный в функцию код к классу кодов "Ошибка клиента".
176+
//
177+
// Параметры:
178+
// Код - Число - код ответа HTTP.
179+
//
180+
// Возвращаемое значение:
181+
// - Булево - Истина, код относится к классу "Ошибка клиента", иначе - Ложь.
182+
//
183+
Функция ЭтоОшибкаКлиента( Знач Код ) Экспорт
184+
185+
Возврат ( КлассКодаОтвета( Код ) = "ОшибкаКлиента" );
186+
187+
КонецФункции
188+
189+
// Определяет относится ли переданный в функцию код к классу кодов "Ошибка сервера".
190+
//
191+
// Параметры:
192+
// Код - Число - код ответа HTTP.
193+
//
194+
// Возвращаемое значение:
195+
// - Булево - Истина, код относится к классу "Ошибка сервера", иначе - Ложь.
196+
//
197+
Функция ЭтоОшибкаСервера( Знач Код ) Экспорт
198+
199+
Возврат ( КлассКодаОтвета( Код ) = "ОшибкаСервера" );
200+
201+
КонецФункции
202+
95203
#Область Informational_1xx
96204

97205
Функция isContinue( Знач Код ) Экспорт
@@ -488,10 +596,74 @@
488596

489597
#Область СлужебныйПрограммныйИнтерфейс
490598

491-
// Соответствие кодов ответа HTTP и их краткому имени, используемого для
492-
// именнованого обращения к элементам структуры.
493-
// 100, "CONTINUE", "Continue"
494-
// 200, "OK", "OK"
599+
// Соответствие кодов ответа HTTP и их краткому имени, используемого для именованого обращения к элементам структуры.
600+
//
601+
// 100, "CONTINUE", "Continue"
602+
// 101, "SWITCHING_PROTOCOLS", "Switching Protocols"
603+
// 102, "PROCESSING", "Processing"
604+
// 103, "CHECKPOINT", "Checkpoint"
605+
//
606+
// 200, "OK", "OK"
607+
// 201, "CREATED", "Created"
608+
// 202, "ACCEPTED", "Accepted"
609+
// 203, "NON_AUTHORITATIVE_INFORMATION", "Non-Authoritative Information"
610+
// 204, "NO_CONTENT", "No Content"
611+
// 205, "RESET_CONTENT", "Reset Content"
612+
// 206, "PARTIAL_CONTENT", "Partial Content"
613+
// 207, "MULTI_STATUS", "Multi-Status"
614+
// 208, "ALREADY_REPORTED", "Already Reported"
615+
// 226, "IM_USED", "IM Used"
616+
//
617+
// 300, "MULTIPLE_CHOICES", "Multiple сhoices"
618+
// 301, "MOVED_PERMANENTLY", "Moved Permanently"
619+
// 302, "FOUND", "Found"
620+
// 303, "SEE_OTHER", "See Other"
621+
// 304, "NOT_MODIFIED", "Not Modified"
622+
// 305, "USE_PROXY", "Use Proxy"
623+
// 307, "TEMPORARY_REDIRECT", "Temporary Redirect"
624+
// 308, "PERMANENT_REDIRECT", "Permanent Redirect"
625+
//
626+
// 400, "BAD_REQUEST", "Bad Request"
627+
// 401, "UNAUTHORIZED", "Unauthorized"
628+
// 402, "PAYMENT_REQUIRED", "Payment Required"
629+
// 403, "FORBIDDEN", "Forbidden"
630+
// 404, "NOT_FOUND", "Not Found"
631+
// 405, "METHOD_NOT_ALLOWED", "Method Not Allowed"
632+
// 406, "NOT_ACCEPTABLE", "Not Acceptable"
633+
// 407, "PROXY_AUTHENTICATION_REQUIRED", "Proxy Authentication Required"
634+
// 408, "REQUEST_TIMEOUT", "Request Timeout"
635+
// 409, "CONFLICT", "Conflict"
636+
// 410, "GONE", "Gone"
637+
// 411, "LENGTH_REQUIRED", "Length Required"
638+
// 412, "PRECONDITION_FAILED", "Precondition Failed"
639+
// 413, "PAYLOAD_TOO_LARGE", "Payload Too Large"
640+
// 414, "URI_TOO_LONG", "URI Too Long"
641+
// 415, "UNSUPPORTED_MEDIA_TYPE", "Unsupported Media Type"
642+
// 416, "REQUESTED_RANGE_NOT_SATISFIABLE", "Requested range not satisfiable"
643+
// 417, "EXPECTATION_FAILED", "Expectation Failed"
644+
// 418, "I_AM_A_TEAPOT", "I'm a teapot"
645+
// 421, "DESTINATION_LOCKED", "Destination Locked"
646+
// 422, "UNPROCESSABLE_ENTITY", "Unprocessable Entity"
647+
// 423, "LOCKED", "Locked"
648+
// 424, "FAILED_DEPENDENCY", "Failed Dependency"
649+
// 426, "UPGRADE_REQUIRED", "Upgrade Required"
650+
// 428, "PRECONDITION_REQUIRED", "Precondition Required"
651+
// 429, "TOO_MANY_REQUESTS", "Too Many Requests"
652+
// 431, "REQUEST_HEADER_FIELDS_TOO_LARGE", "Request Header Fields Too Large"
653+
// 451, "UNAVAILABLE_FOR_LEGAL_REASONS", "Unavailable For Legal Reasons"
654+
//
655+
// 500, "INTERNAL_SERVER_ERROR", "Internal Server Error"
656+
// 501, "NOT_IMPLEMENTED", "Not Implemented"
657+
// 502, "BAD_GATEWAY", "Bad Gateway"
658+
// 503, "SERVICE_UNAVAILABLE", "Service Unavailable"
659+
// 504, "GATEWAY_TIMEOUT", "Gateway Timeout"
660+
// 505, "HTTP_VERSION_NOT_SUPPORTED", "HTTP Version not supported"
661+
// 506, "VARIANT_ALSO_NEGOTIATES", "Variant Also Negotiates"
662+
// 507, "INSUFFICIENT_STORAGE", "Insufficient Storage"
663+
// 508, "LOOP_DETECTED", "Loop Detected"
664+
// 509, "BANDWIDTH_LIMIT_EXCEEDED", "Bandwidth Limit Exceeded"
665+
// 510, "NOT_EXTENDED", "Not Extended"
666+
// 511, "NETWORK_AUTHENTICATION_REQUIRED", "Network Authentication Required"
495667
//
496668
// Возвращаемое значение:
497669
// - ФиксированнаяСтруктура - соответствия числовых кодов и краткого имени ответа:
@@ -507,4 +679,23 @@
507679

508680
КонецФункции
509681

682+
#КонецОбласти
683+
684+
#Область СлужебныеПроцедурыИФункции
685+
686+
Функция КлассыКодовОтвета()
687+
688+
Перем Результат;
689+
690+
Результат = Новый Массив();
691+
Результат.Добавить("Информация");
692+
Результат.Добавить("Успех");
693+
Результат.Добавить("Перенаправление");
694+
Результат.Добавить("ОшибкаКлиента");
695+
Результат.Добавить("ОшибкаСервера");
696+
697+
Возврат Результат;
698+
699+
КонецФункции
700+
510701
#КонецОбласти

0 commit comments

Comments
 (0)