File Coverage

blib/lib/WebService/Recruit/Shingaku/School.pm
Criterion Covered Total %
statement 20 25 80.0
branch n/a
condition n/a
subroutine 10 15 66.6
pod 8 10 80.0
total 38 50 76.0


line stmt bran cond sub pod time code
1             package WebService::Recruit::Shingaku::School;
2              
3 3     3   833 use strict;
  3         7  
  3         108  
4 3     3   13 use base qw( WebService::Recruit::Shingaku::Base );
  3         7  
  3         1691  
5 3     3   16 use vars qw( $VERSION );
  3         6  
  3         96  
6 3     3   13 use Class::Accessor::Fast;
  3         5  
  3         23  
7 3     3   69 use Class::Accessor::Children::Fast;
  3         5  
  3         12  
8              
9             $VERSION = '0.0.1';
10              
11 0     0 1 0 sub http_method { 'GET'; }
12              
13 0     0 1 0 sub url { 'http://webservice.recruit.co.jp/shingaku/school/v1/'; }
14              
15 1     1 1 39 sub query_class { 'WebService::Recruit::Shingaku::School::Query'; }
16              
17             sub query_fields { [
18 3     3 0 41 'key', 'code', 'name', 'kana', 'faculty', 'department', 'pref_cd', 'category_cd', 'address', 'lat', 'lng', 'range', 'datum', 'station', 'keyword', 'subject_cd', 'work_cd', 'order', 'start', 'count'
19             ]; }
20              
21             sub default_param { {
22 1     1 1 784 'format' => 'xml'
23             }; }
24              
25             sub notnull_param { [
26 0     0 1 0 'key'
27             ]; }
28              
29 0     0 1 0 sub elem_class { 'WebService::Recruit::Shingaku::School::Element'; }
30              
31 3     3 1 35 sub root_elem { 'results'; }
32              
33             sub elem_fields { {
34 3     3 0 74 'campus' => ['name', 'address', 'datum', 'latitude', 'longitude', 'station'],
35             'category' => ['code', 'name'],
36             'error' => ['message'],
37             'faculty' => ['name', 'department'],
38             'pref' => ['code', 'name'],
39             'results' => ['api_version', 'results_available', 'results_returned', 'results_start', 'school', 'api_version', 'error'],
40             'school' => ['code', 'name', 'kana', 'campus', 'category', 'faculty', 'pref', 'urls'],
41             'urls' => ['mobile', 'pc', 'qr'],
42              
43             }; }
44              
45             sub force_array { [
46 0     0 1   'campus', 'faculty', 'school'
47             ]; }
48              
49             # __PACKAGE__->mk_query_accessors();
50              
51             @WebService::Recruit::Shingaku::School::Query::ISA = qw( Class::Accessor::Fast );
52             WebService::Recruit::Shingaku::School::Query->mk_accessors( @{query_fields()} );
53              
54             # __PACKAGE__->mk_elem_accessors();
55              
56             @WebService::Recruit::Shingaku::School::Element::ISA = qw( Class::Accessor::Children::Fast );
57             WebService::Recruit::Shingaku::School::Element->mk_ro_accessors( root_elem() );
58             WebService::Recruit::Shingaku::School::Element->mk_child_ro_accessors( %{elem_fields()} );
59              
60             =head1 NAME
61              
62             WebService::Recruit::Shingaku::School - Recruit Shingaku net Web Service "school" API
63              
64             =head1 SYNOPSIS
65              
66             use WebService::Recruit::Shingaku;
67            
68             my $service = WebService::Recruit::Shingaku->new();
69            
70             my $param = {
71             'key' => $ENV{'WEBSERVICE_RECRUIT_KEY'},
72             'keyword' => '数学',
73             'pref_cd' => '12',
74             };
75             my $res = $service->school( %$param );
76             my $data = $res->root;
77             print "api_version: $data->api_version\n";
78             print "results_available: $data->results_available\n";
79             print "results_returned: $data->results_returned\n";
80             print "results_start: $data->results_start\n";
81             print "school: $data->school\n";
82             print "...\n";
83              
84             =head1 DESCRIPTION
85              
86             This module is a interface for the C API.
87             It accepts following query parameters to make an request.
88              
89             my $param = {
90             'key' => 'XXXXXXXX',
91             'code' => 'SC999999',
92             'name' => '銀座大学',
93             'kana' => 'リクルート',
94             'faculty' => '広告学部',
95             'department' => 'メディア学科',
96             'pref_cd' => '13',
97             'category_cd' => '11',
98             'address' => '東京都中央区銀座8',
99             'lat' => '35.66922072646455',
100             'lng' => '139.7614574432373',
101             'range' => 'XXXXXXXX',
102             'datum' => 'XXXXXXXX',
103             'station' => '新橋',
104             'keyword' => '東京 広告',
105             'subject_cd' => 'a1010',
106             'work_cd' => 'a2010',
107             'order' => 'XXXXXXXX',
108             'start' => 'XXXXXXXX',
109             'count' => 'XXXXXXXX',
110             };
111             my $res = $service->school( %$param );
112              
113             C<$service> above is an instance of L.
114              
115             =head1 METHODS
116              
117             =head2 root
118              
119             This returns the root element of the response.
120              
121             my $root = $res->root;
122              
123             You can retrieve each element by the following accessors.
124              
125             $root->api_version
126             $root->results_available
127             $root->results_returned
128             $root->results_start
129             $root->school
130             $root->school->[0]->code
131             $root->school->[0]->name
132             $root->school->[0]->kana
133             $root->school->[0]->campus
134             $root->school->[0]->category
135             $root->school->[0]->faculty
136             $root->school->[0]->pref
137             $root->school->[0]->urls
138             $root->school->[0]->campus->[0]->name
139             $root->school->[0]->campus->[0]->address
140             $root->school->[0]->campus->[0]->datum
141             $root->school->[0]->campus->[0]->latitude
142             $root->school->[0]->campus->[0]->longitude
143             $root->school->[0]->campus->[0]->station
144             $root->school->[0]->category->code
145             $root->school->[0]->category->name
146             $root->school->[0]->faculty->[0]->name
147             $root->school->[0]->faculty->[0]->department
148             $root->school->[0]->pref->code
149             $root->school->[0]->pref->name
150             $root->school->[0]->urls->mobile
151             $root->school->[0]->urls->pc
152             $root->school->[0]->urls->qr
153              
154              
155             =head2 xml
156              
157             This returns the raw response context itself.
158              
159             print $res->xml, "\n";
160              
161             =head2 code
162              
163             This returns the response status code.
164              
165             my $code = $res->code; # usually "200" when succeeded
166              
167             =head2 is_error
168              
169             This returns true value when the response has an error.
170              
171             die 'error!' if $res->is_error;
172              
173             =head1 SEE ALSO
174              
175             L
176              
177             =head1 AUTHOR
178              
179             RECRUIT Media Technology Labs
180              
181             =head1 COPYRIGHT
182              
183             Copyright 2008 RECRUIT Media Technology Labs
184              
185             =cut
186             1;