Bug 17600: Standardize our EXPORT_OK
[srvgit] / Koha / Item / Search / Field.pm
1 package Koha::Item::Search::Field;
2
3 use Modern::Perl;
4
5 our (@ISA, @EXPORT_OK);
6 BEGIN {
7     require Exporter;
8     @ISA = qw(Exporter);
9     @EXPORT_OK = qw(
10         AddItemSearchField
11         ModItemSearchField
12         DelItemSearchField
13         GetItemSearchField
14         GetItemSearchFields
15     );
16 };
17
18 use C4::Context;
19
20 sub AddItemSearchField {
21     my ($field) = @_;
22
23     my ( $name, $label, $tagfield, $tagsubfield, $av_category ) =
24       @$field{qw(name label tagfield tagsubfield authorised_values_category)};
25
26     return unless ($name and $label and $tagfield);
27
28     my $dbh = C4::Context->dbh;
29     my $query = q{
30         INSERT INTO items_search_fields (name, label, tagfield, tagsubfield, authorised_values_category)
31         VALUES (?, ?, ?, ?, ?)
32     };
33     my $sth = $dbh->prepare($query);
34     my $rv = $sth->execute($name, $label, $tagfield, $tagsubfield, $av_category);
35
36     return ($rv) ? $field : undef;
37 }
38
39 sub ModItemSearchField {
40     my ($field) = @_;
41
42     my ( $name, $label, $tagfield, $tagsubfield, $av_category ) =
43       @$field{qw(name label tagfield tagsubfield authorised_values_category)};
44
45     return unless ($name and $label and $tagfield);
46
47     my $dbh = C4::Context->dbh;
48     my $query = q{
49         UPDATE items_search_fields
50         SET label = ?,
51             tagfield = ?,
52             tagsubfield = ?,
53             authorised_values_category = ?
54         WHERE name = ?
55     };
56     my $sth = $dbh->prepare($query);
57     my $rv = $sth->execute($label, $tagfield, $tagsubfield, $av_category, $name);
58
59     return ($rv) ? $field : undef;
60 }
61
62 sub DelItemSearchField {
63     my ($name) = @_;
64
65     my $dbh = C4::Context->dbh;
66     my $query = q{
67         DELETE FROM items_search_fields
68         WHERE name = ?
69     };
70     my $sth = $dbh->prepare($query);
71     my $rv = $sth->execute($name);
72
73     my $is_deleted = $rv ? int($rv) : 0;
74     if (!$is_deleted) {
75         warn "DelItemSearchField: Field '$name' doesn't exist";
76     }
77
78     return $is_deleted;
79 }
80
81 sub GetItemSearchField {
82     my ($name) = @_;
83
84     my $dbh = C4::Context->dbh;
85     my $query = q{
86         SELECT * FROM items_search_fields
87         WHERE name = ?
88     };
89     my $sth = $dbh->prepare($query);
90     my $rv = $sth->execute($name);
91
92     my $field;
93     if ($rv) {
94         $field = $sth->fetchrow_hashref;
95     }
96
97     return $field;
98 }
99
100 sub GetItemSearchFields {
101     my $dbh = C4::Context->dbh;
102     my $query = q{
103         SELECT * FROM items_search_fields
104     };
105     my $sth = $dbh->prepare($query);
106     my $rv = $sth->execute();
107
108     my @fields;
109     if ($rv) {
110         my $fields = $sth->fetchall_arrayref( {} );
111         @fields = @$fields;
112     }
113
114     return @fields;
115 }
116
117 1;