Commit 6e0a966e28a0b24f6b2d45798c4c607be4883c3a
1 parent
2fbbd6dd
Exists in
master
and in
2 other branches
Add status to api
Signed-off-by: Athos Ribeiro <athoscribeiro@gmail.com> Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
Showing
1 changed file
with
29 additions
and
1 deletions
Show diff stats
spb_copr_status.psgi
| ... | ... | @@ -55,6 +55,22 @@ sub copr_info { |
| 55 | 55 | return $info; |
| 56 | 56 | } |
| 57 | 57 | |
| 58 | +sub compare_versions { | |
| 59 | + my $info = copr_info(); | |
| 60 | + my $match = {}; | |
| 61 | + foreach my $key (%{$info}) { | |
| 62 | + next if(ref($key) eq 'HASH'); | |
| 63 | + if($info->{$key}->{'v5_version'} eq $info->{$key}->{git_version}) { | |
| 64 | + $match->{$key} = 1; | |
| 65 | + } | |
| 66 | + else { | |
| 67 | + $match->{$key} = 0; | |
| 68 | + } | |
| 69 | + } | |
| 70 | + | |
| 71 | + return $match; | |
| 72 | +} | |
| 73 | + | |
| 58 | 74 | sub info2html { |
| 59 | 75 | my $info = copr_info(); |
| 60 | 76 | my $table_entries=""; |
| ... | ... | @@ -103,7 +119,8 @@ sub build_html { |
| 103 | 119 | |
| 104 | 120 | my %ROUTING = ( |
| 105 | 121 | '/' => \&serve_html, |
| 106 | - '/api' => \&serve_json | |
| 122 | + '/api' => \&serve_json, | |
| 123 | + '/api/status' => \&serve_json_status | |
| 107 | 124 | ); |
| 108 | 125 | |
| 109 | 126 | my $app = sub { |
| ... | ... | @@ -140,6 +157,17 @@ sub serve_json { |
| 140 | 157 | ]; |
| 141 | 158 | }; |
| 142 | 159 | |
| 160 | +sub serve_json_status { | |
| 161 | + my $info = compare_versions(); | |
| 162 | + my $json = JSON->new->allow_nonref; | |
| 163 | + my $json_info = $json->encode($info); | |
| 164 | + return [ | |
| 165 | + '200', | |
| 166 | + [ 'Content-Type' => 'application/json'], | |
| 167 | + [ $json_info ], | |
| 168 | + ]; | |
| 169 | +}; | |
| 170 | + | |
| 143 | 171 | builder { |
| 144 | 172 | enable "Static", path => qr!^(/css|/js)!, pass_through => 1; |
| 145 | 173 | $app; | ... | ... |