View | Details | Raw Unified | Return to bug 24321
Collapse All | Expand All

(-)a/Koha/REST/V1/Patrons/Account.pm (-96 lines)
Lines 157-256 sub add_credit { Link Here
157
    };
157
    };
158
}
158
}
159
159
160
161
=head3 _to_api
162
163
Helper function that maps unblessed Koha::Account::Line objects
164
into REST API attribute names.
165
166
=cut
167
168
sub _to_api {
169
    my $account_line = shift;
170
171
    # Rename attributes
172
    foreach my $column ( keys %{ $Koha::REST::V1::Patrons::Account::to_api_mapping } ) {
173
        my $mapped_column = $Koha::REST::V1::Patrons::Account::to_api_mapping->{$column};
174
        if (    exists $account_line->{ $column }
175
             && defined $mapped_column )
176
        {
177
            # key != undef
178
            $account_line->{ $mapped_column } = delete $account_line->{ $column };
179
        }
180
        elsif (    exists $account_line->{ $column }
181
                && !defined $mapped_column )
182
        {
183
            # key == undef
184
            delete $account_line->{ $column };
185
        }
186
    }
187
188
    return $account_line;
189
}
190
191
=head3 _to_model
192
193
Helper function that maps REST API objects into Koha::Account::Line
194
attribute names.
195
196
=cut
197
198
sub _to_model {
199
    my $account_line = shift;
200
201
    foreach my $attribute ( keys %{ $Koha::REST::V1::Patrons::Account::to_model_mapping } ) {
202
        my $mapped_attribute = $Koha::REST::V1::Patrons::Account::to_model_mapping->{$attribute};
203
        if (    exists $account_line->{ $attribute }
204
             && defined $mapped_attribute )
205
        {
206
            # key => !undef
207
            $account_line->{ $mapped_attribute } = delete $account_line->{ $attribute };
208
        }
209
        elsif (    exists $account_line->{ $attribute }
210
                && !defined $mapped_attribute )
211
        {
212
            # key => undef / to be deleted
213
            delete $account_line->{ $attribute };
214
        }
215
    }
216
217
    return $account_line;
218
}
219
220
=head2 Global variables
221
222
=head3 $to_api_mapping
223
224
=cut
225
226
our $to_api_mapping = {
227
    accountlines_id   => 'account_line_id',
228
    credit_type_code  => 'credit_type',
229
    debit_type_code   => 'debit_type',
230
    amountoutstanding => 'amount_outstanding',
231
    borrowernumber    => 'patron_id',
232
    branchcode        => 'library_id',
233
    issue_id          => 'checkout_id',
234
    itemnumber        => 'item_id',
235
    manager_id        => 'user_id',
236
    note              => 'internal_note',
237
};
238
239
=head3 $to_model_mapping
240
241
=cut
242
243
our $to_model_mapping = {
244
    account_line_id    => 'accountlines_id',
245
    credit_type        => 'credit_type_code',
246
    debit_type         => 'debit_type_code',
247
    amount_outstanding => 'amountoutstanding',
248
    checkout_id        => 'issue_id',
249
    internal_note      => 'note',
250
    item_id            => 'itemnumber',
251
    library_id         => 'branchcode',
252
    patron_id          => 'borrowernumber',
253
    user_id            => 'manager_id'
254
};
255
256
1;
160
1;
(-)a/t/db_dependent/api/v1/patrons_accounts.t (-4 / +3 lines)
Lines 97-104 subtest 'get_balance() tests' => sub { Link Here
97
            outstanding_debits => {
97
            outstanding_debits => {
98
                total => 100.01,
98
                total => 100.01,
99
                lines => [
99
                lines => [
100
                    Koha::REST::V1::Patrons::Account::_to_api( $account_line_1->TO_JSON ),
100
                    $account_line_1->to_api,
101
                    Koha::REST::V1::Patrons::Account::_to_api( $account_line_2->TO_JSON )
101
                    $account_line_2->to_api
102
                ]
102
                ]
103
            },
103
            },
104
            outstanding_credits => {
104
            outstanding_credits => {
Lines 144-150 subtest 'get_balance() tests' => sub { Link Here
144
            },
144
            },
145
            outstanding_credits => {
145
            outstanding_credits => {
146
                total => -10,
146
                total => -10,
147
                lines => [ Koha::REST::V1::Patrons::Account::_to_api( $credit_line->TO_JSON ) ]
147
                lines => [ $credit_line->to_api ]
148
            }
148
            }
149
        }
149
        }
150
    );
150
    );
151
- 

Return to bug 24321