added fork feature
|
1 |
<% |
add fork test
|
2 |
# API |
added fork feature
|
3 |
my $api = gitprep_api; |
4 |
|
|
fix session
|
5 |
# Parameters |
6 |
my $user_id = param('user'); |
|
7 |
my $project_id = param('project'); |
|
8 |
my $session_user_row_id = session('user_row_id'); |
|
9 |
my $session_user = app->dbi->model('user')->select( |
|
10 |
where => {row_id => $session_user_row_id} |
|
11 |
)->one; |
|
added fork feature
|
12 |
|
add fork test
|
13 |
# Can fork? |
14 |
unless ($api->logined) { |
|
15 |
$self->redirect_to('/'); |
|
16 |
return; |
|
17 |
} |
|
18 |
|
|
19 |
# Repository is already exists |
|
fix session
|
20 |
if (app->manager->exists_project($session_user->{id}, $project_id)) { |
21 |
$self->redirect_to("/$session_user->{id}/$project_id"); |
|
add fork test
|
22 |
return; |
23 |
} |
|
24 |
# Fork |
|
25 |
else { |
|
fix session
|
26 |
eval { app->manager->fork_project($session_user->{id}, $user_id, $project_id) }; |
improve error message
|
27 |
if (my $e = $@) { |
do success xt tests
|
28 |
$self->reply->exception('Internal Error'); |
improve error message
|
29 |
app->log->error(url_for . ": $e"); |
added fork feature
|
30 |
} |
31 |
else { |
|
fix session
|
32 |
flash(message => "Repository is forked from /$user_id/$project_id."); |
33 |
$self->redirect_to("/$session_user->{id}/$project_id"); |
|
added fork feature
|
34 |
} |
fixed bug that fork return e...
|
35 |
return; |
added fork feature
|
36 |
} |
37 |
%> |