File Coverage

blib/lib/WebService/Mattermost/V4/API/Object/Thread.pm
Criterion Covered Total %
statement 9 20 45.0
branch 0 2 0.0
condition n/a
subroutine 3 6 50.0
pod n/a
total 12 28 42.8


line stmt bran cond sub pod time code
1             package WebService::Mattermost::V4::API::Object::Thread;
2              
3             # ABSTRACT: A message thread.
4              
5 7     7   45 use Moo;
  7         15  
  7         37  
6 7     7   2410 use Types::Standard qw(ArrayRef Maybe);
  7         23  
  7         56  
7              
8 7     7   4355 use WebService::Mattermost::V4::API::Object::Post;
  7         16  
  7         1685  
9              
10             extends 'WebService::Mattermost::V4::API::Object';
11              
12             ################################################################################
13              
14             has [ qw(
15             order
16             matches
17             posts
18             ) ] => (is => 'ro', isa => Maybe[ArrayRef], lazy => 1, builder => 1);
19              
20             ################################################################################
21              
22 0     0     sub _build_order { shift->raw_data->{order} }
23 0     0     sub _build_matches { shift->raw_data->{matches} }
24              
25             sub _build_posts {
26 0     0         my $self = shift;
27              
28 0               my @posts;
29              
30 0               foreach my $post (keys %{$self->raw_data->{posts}}) {
  0            
31                     push @posts, WebService::Mattermost::V4::API::Object::Post
32 0                       ->new($self->_related_args($self->raw_data->{posts}->{$post}));
33                 }
34              
35 0 0             if (scalar @posts) {
36 0                   @posts = sort { $a->create_at <=> $b->create_at } @posts;
  0            
37                 }
38              
39 0               return \@posts;
40             }
41              
42             ################################################################################
43              
44             1;
45              
46             __END__
47            
48             =pod
49            
50             =encoding UTF-8
51            
52             =head1 NAME
53            
54             WebService::Mattermost::V4::API::Object::Thread - A message thread.
55            
56             =head1 VERSION
57            
58             version 0.26
59            
60             =head1 DESCRIPTION
61            
62             Describes a list of Mattermost posts.
63            
64             =head2 ATTRIBUTES
65            
66             =over 4
67            
68             =item C<matches>
69            
70             If the posts are a search result, a list of strings that match.
71            
72             =item C<order>
73            
74             =item C<posts>
75            
76             An arrayref of posts in the list, ordered by date created.
77            
78             =back
79            
80             =head1 AUTHOR
81            
82             Mike Jones <mike@netsplit.org.uk>
83            
84             =head1 COPYRIGHT AND LICENSE
85            
86             This software is Copyright (c) 2020 by Mike Jones.
87            
88             This is free software, licensed under:
89            
90             The MIT (X11) License
91            
92             =cut
93