summaryrefslogtreecommitdiffstats
path: root/extensions/PhabBugz/lib/Project.pm
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/PhabBugz/lib/Project.pm')
-rw-r--r--extensions/PhabBugz/lib/Project.pm27
1 files changed, 19 insertions, 8 deletions
diff --git a/extensions/PhabBugz/lib/Project.pm b/extensions/PhabBugz/lib/Project.pm
index b93a6eb9e..c18708887 100644
--- a/extensions/PhabBugz/lib/Project.pm
+++ b/extensions/PhabBugz/lib/Project.pm
@@ -12,10 +12,12 @@ use Moo;
use Scalar::Util qw(blessed);
use Types::Standard -all;
use Type::Utils;
+use Type::Params qw( compile );
use Bugzilla::Error;
use Bugzilla::Util qw(trim);
use Bugzilla::Extension::PhabBugz::User;
+use Bugzilla::Extension::PhabBugz::Types qw(:types);
use Bugzilla::Extension::PhabBugz::Util qw(request);
#########################
@@ -33,7 +35,9 @@ has view_policy => ( is => 'ro', isa => Str );
has edit_policy => ( is => 'ro', isa => Str );
has join_policy => ( is => 'ro', isa => Str );
has members_raw => ( is => 'ro', isa => ArrayRef [ Dict [ phid => Str ] ] );
-has members => ( is => 'lazy', isa => ArrayRef [Object] );
+has members => ( is => 'lazy', isa => ArrayRef[PhabUser] );
+
+my $Invocant = class_type { class => __PACKAGE__ };
sub new_from_query {
my ( $class, $params ) = @_;
@@ -142,12 +146,20 @@ sub BUILDARGS {
#########################
sub create {
- my ( $class, $params ) = @_;
-
- my $name = trim( $params->{name} );
- $name || ThrowCodeError( 'param_required', { param => 'name' } );
+ state $check = compile(
+ $Invocant | ClassName,
+ Dict[
+ name => Str,
+ description => Str,
+ view_policy => Str,
+ edit_policy => Str,
+ join_policy => Str,
+ ]
+ );
+ my ( $class, $params ) = $check->(@_);
- my $description = $params->{description} || 'Need description';
+ my $name = trim($params->{name});
+ my $description = $params->{description};
my $view_policy = $params->{view_policy};
my $edit_policy = $params->{edit_policy};
my $join_policy = $params->{join_policy};
@@ -324,5 +336,4 @@ sub _build_members {
);
}
-1;
-
+1; \ No newline at end of file