gitprep / templates / fork.html.ep /
0cefed5 11 years ago
1 contributor
49 lines | 1.021kb
<%
  my $api = gitprep_api;
  my $logined = $api->logined;
  
  # Validation
  my $params = $api->params;
  my $rule = [
    user => [
      'user_name'
    ],
    project => [
      'project_name'
    ]
  ];
  my $vresult = app->validator->validate($params, $rule);
  
  # Fork project
  if ($vresult->is_ok) {
    unless ($logined) {
      $self->redirect_to("/$user/$project");
      return 1;
    }
    
    my $login_user = session('user');
    my $data = $vresult->data;
    my $user = $data->{user};
    my $project = $data->{project};
    
    if ($login_user eq $user) {
      $self->redirect_to("/$user/$project");
      return 1;
    }
    
    eval { app->manager->fork_project($login_user, $user, $project) };
    if ($@) {
      $self->render_exception($@);
      return $self->res->body;
    }
    else {
      flash('original_project', "$user/$project");
      $self->redirect_to("/$login_user/$project");
      return 1;
    }
  }
  else {
    $self->redirect_to("/$user/$project");
    return 1;
  }
%>