changeset 128:08753833173d

Fixed a error handling issue in JSON output: errors are correctly transfered A complete documentation for a IMPL::Web::Application::ControllerUnit
author wizard
date Tue, 15 Jun 2010 02:41:07 +0400 (2010-06-14)
parents 0dce0470a3d8
children e4f15cbc3f1a
files Lib/IMPL/Web/Application/ControllerUnit.pm Lib/IMPL/Web/QueryHandler/JsonFormat.pm
diffstat 2 files changed, 26 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/Lib/IMPL/Web/Application/ControllerUnit.pm	Fri Jun 11 20:21:07 2010 +0400
+++ b/Lib/IMPL/Web/Application/ControllerUnit.pm	Tue Jun 15 02:41:07 2010 +0400
@@ -167,7 +167,9 @@
 ��� ����� ���������� ����� C<InvokeAction($method,$action)>, ������� �������/��������������� ��������
 ����������.
 
-���������� �� ������ ������ ������� �� ������� � �����.
+���������� �� ������ ������ ������� �� ������� � �����. ��������� ���� ���������� ����������� ��� ������
+��������� ������� (C<TransactionWrapper> � C<FormWrapper>). ������ ������� �������� �� ���������������
+���������� ������� � ����� ������ ��� ���������� ����������, � ����� �� ������� ���������� ����������.  
 
 =head2 ������� ����������
 
@@ -180,7 +182,7 @@
 ��� ������������ DOM ��������� ������������ �����. ��� ���� ���������� �������� �������������� ��������
 C<formData>, C<formSchema>, C<formErrors>.
 
-��������� ���������� ���������� �� ������������ �������� ������������, � ���������� � ����� �����, �������
+��������� ���������� ���������� �� ������������ ������ ��������, � ���������� � ���������, �������
 �������� ��������� �������
 
 =begin code
@@ -234,7 +236,7 @@
 
 =item C<formErrors>
 
-������ ����������� ������, ���� ������� ����
+������ �� ������ � �������� ��� �������� �����.
 
 =back
 
@@ -244,16 +246,29 @@
 
 =item C<[get] application>
 
+������ ����������, ������� ������������ ������.
+
 =item C<[get] query>
 
+������� ������.
+
 =item C<[get] response>
 
+������� �����.
+
 =item C<[get] formData>
 
+C<IMPL::DOM::Document> �������� � �������, ���� ������ ������ �������� ������.
+
 =item C<[get] formSchema>
 
+C<IMPL::DOM::Schema> �������� �� ������ ����� ������� �������.
+
 =item C<[get] formErrors>
 
+������ ����������� ������, ���� ������� ����. ������ ��� ������� ������ � �����, ����������
+�� �����������, � ��� ������ ���������� � �����.
+
 =item C<InvokeAction($method,$action)>
 
 ������������ �������� ���������� ����������, ����� ���� ������������� ��� ��������������� ��������� ��
--- a/Lib/IMPL/Web/QueryHandler/JsonFormat.pm	Fri Jun 11 20:21:07 2010 +0400
+++ b/Lib/IMPL/Web/QueryHandler/JsonFormat.pm	Tue Jun 15 02:41:07 2010 +0400
@@ -55,15 +55,6 @@
 				map { $this->Transform($_) } @$object
 			]; 
 		},
-		'IMPL::Exception' => sub {
-			my ($this,$object) = @_;
-			
-			return {
-				type => $object->type,
-				message => $object->Message,
-				arguments => $this->Transform(scalar $object->Args)
-			};	
-		},
 		-plain => sub {
 			$_[1];
 		},
@@ -72,6 +63,14 @@
 			
 			return "$object" unless $object->isa('IMPL::Object::Abstract');
 			
+			if ( $object->isa(typeof IMPL::Exception) ) {
+				return {
+					type => $object->typeof,
+					message => $object->Message,
+					arguments => $this->Transform(scalar $object->Args)
+				};
+			}
+			
 			my $propList = $propListCache{ref $object};
 			unless ( $propList ) {
 				my %props = map {