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

(-)a/Koha/REST/V1/Messages/Reports.pm (-2 / +2 lines)
Lines 28-37 sub create_labyrintti_report { Link Here
28
                            status          => 'failed',
28
                            status          => 'failed',
29
                            delivery_note   => $args->{message},
29
                            delivery_note   => $args->{message},
30
                    });
30
                    });
31
        return $c->$cb('', 201);
31
        return $c->$cb('', 200);
32
    }
32
    }
33
    
33
    
34
    return $c->$cb('', 204);
34
    return $c->$cb('', 200);
35
}
35
}
36
36
37
1;
37
1;
(-)a/SMS/Send/Labyrintti/Driver.pm (-4 / +17 lines)
Lines 89-96 sub send_sms { Link Here
89
    $recipientNumber =~ s/'//g;
89
    $recipientNumber =~ s/'//g;
90
    $message =~ s/(")|(\$\()|(`)/\\"/g; #Sanitate " so it won't break the system( iconv'ed curl command )
90
    $message =~ s/(")|(\$\()|(`)/\\"/g; #Sanitate " so it won't break the system( iconv'ed curl command )
91
91
92
    
93
    
94
    my $base_url = "https://gw.labyrintti.com:28443/sendsms";
92
    my $base_url = "https://gw.labyrintti.com:28443/sendsms";
95
    my $parameters = {
93
    my $parameters = {
96
        'user'      => $self->{_login},
94
        'user'      => $self->{_login},
Lines 100-113 sub send_sms { Link Here
100
        'unicode'   => 'yes',
98
        'unicode'   => 'yes',
101
    };
99
    };
102
    
100
    
101
    # check if we need to use unicode
102
    #  -> if unicode => yes, maxlength for 1 sms = 70 chars
103
    #  -> else maxlenght = 160 chars (140 bytes, GSM 03.38)
104
    my $gsm0388 = decode("gsm0338",encode("gsm0338", $message));
105
106
    if ($message ne $gsm0388 and C4::Context->config('smsProviders')->{'labyrintti'}->{'Unicode'} eq "yes"){
107
        $parameters->{'unicode'} = 'yes';
108
        C4::Letters::UpdateQueuedMessage({
109
               message_id => $params->{_message_id},
110
               metadata   => 'UTF-16',
111
        });
112
    } else {
113
        $parameters->{'unicode'} = 'no';
114
    }
115
103
    my $report_url = C4::Context->config('smsProviders')->{'labyrintti'}->{'reportUrl'};
116
    my $report_url = C4::Context->config('smsProviders')->{'labyrintti'}->{'reportUrl'};
104
    if ($report_url) {
117
    if ($report_url) {
105
        my $msg_id = $params->{_message_id};
118
        my $msg_id = $params->{_message_id};
106
        $report_url =~ s/\{messagenumber\}/$msg_id/g;
119
        $report_url =~ s/\{messagenumber\}/$msg_id/g;
107
        $parameters->{'report'} = $report_url;
120
        $parameters->{'report'} = $report_url;
108
    }
121
    }
109
    
122
110
    my $lwpcurl = LWP::Curl->new(auto_encode => 0);
123
    my $lwpcurl = LWP::Curl->new();
111
    my $return = $lwpcurl->post($base_url, $parameters);
124
    my $return = $lwpcurl->post($base_url, $parameters);
112
125
113
    if ($lwpcurl->{retcode} == 6) {
126
    if ($lwpcurl->{retcode} == 6) {
(-)a/api/v1/swagger.json (-8 / +2 lines)
Lines 537-550 Link Here
537
          "application/json"
537
          "application/json"
538
        ],
538
        ],
539
        "responses": {
539
        "responses": {
540
          "201": {
540
          "200": {
541
            "description": "Response for creating a new report. Required status ERROR",
541
            "description": "Response for receiving the report.",
542
            "schema": {
543
              "type": "string"
544
            }
545
          },
546
          "204": {
547
            "description": "Response for receiving delivery report with status OK",
548
            "schema": {
542
            "schema": {
549
              "type": "string"
543
              "type": "string"
550
            }
544
            }
(-)a/etc/koha-conf.xml (-1 / +6 lines)
Lines 151-162 __PAZPAR2_TOGGLE_XML_POST__ Link Here
151
        <user></user>
151
        <user></user>
152
        <passwd></passwd>
152
        <passwd></passwd>
153
        <!-- Report URL is the page where your SMS Gateway provider will send a report
153
        <!-- Report URL is the page where your SMS Gateway provider will send a report
154
             about the delivery of the message.
154
             about the delivery of the message. Leave {messagenumber} as it is; it will
155
             be replaced by message_id in your driver.
155
156
156
             With REST API, it should be
157
             With REST API, it should be
157
             http://mydomain.com/api/v1/messages/{messagenumber}/report/_your_gateway_
158
             http://mydomain.com/api/v1/messages/{messagenumber}/report/_your_gateway_
158
                                                                                    -->
159
                                                                                    -->
159
        <reportUrl></reportUrl>
160
        <reportUrl></reportUrl>
161
        <!-- Use UTF-16. Note: with this encoding, maxlength of sms = 70 chars
162
            To use UTF-16 when needed: yes
163
            To disable and use GSM 03.38: leave blank -->
164
        <Unicode></Unicode>
160
    </labyrintti>
165
    </labyrintti>
161
 </smsProviders>
166
 </smsProviders>
162
</config>
167
</config>
(-)a/t/db_dependent/Api/V1/Messages.pm (-34 / +2 lines)
Lines 273-310 sub post_n_reportlabyrintti404 { Link Here
273
    return 1;
273
    return 1;
274
}
274
}
275
275
276
sub post_n_reportlabyrintti204 {
276
sub post_n_reportlabyrintti200 {
277
    my ($class, $restTest, $driver) = @_;
278
    my $testContext = $restTest->get_testContext();
279
    my $activeUser = $restTest->get_activeBorrower();
280
    my $path = $restTest->get_routePath();
281
282
    #Create the test context.
283
    my $messages = t::lib::TestObjects::MessageQueueFactory->createTestGroup(
284
                        {
285
                            subject => "The quick brown fox",
286
                            content => "Jumps over the lazy dog.",
287
                            cardnumber => $activeUser->{'_result'}->{'_column_data'}->{cardnumber},
288
                            message_transport_type => 'sms',
289
                            from_address => '11A001@example.com',
290
                        }, undef, $testContext, undef, undef);
291
292
    my $messagenumber = $messages->{'11A001@example.com'}->{message_id};
293
    $path =~ s/\{messagenumber\}/$messagenumber/;
294
    $driver->post_ok(
295
                    $path => { Accept => 'application/x-www-form-urlencoded'} =>
296
                    form => {
297
                        status => "OK",
298
                        message => "Message delivery succesful",
299
                    }
300
            );
301
    $driver->status_is(204);
302
303
    t::lib::TestObjects::ObjectFactory->tearDownTestContext($testContext);
304
    return 1;
305
}
306
307
sub post_n_reportlabyrintti201 {
308
    my ($class, $restTest, $driver) = @_;
277
    my ($class, $restTest, $driver) = @_;
309
    my $testContext = $restTest->get_testContext();
278
    my $testContext = $restTest->get_testContext();
310
    my $activeUser = $restTest->get_activeBorrower();
279
    my $activeUser = $restTest->get_activeBorrower();
Lines 329-335 sub post_n_reportlabyrintti201 { Link Here
329
                        message => "Test error delivery note",
298
                        message => "Test error delivery note",
330
                    }
299
                    }
331
            );
300
            );
332
    $driver->status_is(201);
301
    $driver->status_is(200);
333
    my $message = C4::Letters::GetMessage($messagenumber);
302
    my $message = C4::Letters::GetMessage($messagenumber);
334
    is($message->{delivery_note}, "Test error delivery note", "Delivery note for failed SMS received successfully.");
303
    is($message->{delivery_note}, "Test error delivery note", "Delivery note for failed SMS received successfully.");
335
304
336
- 

Return to bug 14767