From 29f90d96895b6804b8b2e386228c2b8a3f71ff2d Mon Sep 17 00:00:00 2001
From: Raditss <raditya.naufal.a@gmail.com>
Date: Wed, 15 Nov 2023 20:48:20 +0700
Subject: [PATCH] fix output get transaction and refactor

---
 db/toco_soap.sql                                      | 6 +++++-
 src/main/java/org/toco/model/transaction_model.java   | 4 ++--
 src/main/java/org/toco/service/toco_service.java      | 2 +-
 src/main/java/org/toco/service/toco_service_impl.java | 6 +++---
 4 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/db/toco_soap.sql b/db/toco_soap.sql
index 27b1a8b..3c4287b 100644
--- a/db/toco_soap.sql
+++ b/db/toco_soap.sql
@@ -34,10 +34,14 @@ CREATE TABLE `transaction`(
 CREATE TABLE `api`(
     api_id int(11) NOT NULL AUTO_INCREMENT,
     api_key VARCHAR(255) NOT NULL,
-    service VARCHAR(255) NOT NULL,
     PRIMARY KEY (`api_id`)
     ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 
+INSERT INTO `api` (`api_key`) VALUES
+    ('Postman'),
+    ('toco_rest'),
+    ('toco_php');
+
 
   
 
diff --git a/src/main/java/org/toco/model/transaction_model.java b/src/main/java/org/toco/model/transaction_model.java
index ee5fc7c..32a264c 100644
--- a/src/main/java/org/toco/model/transaction_model.java
+++ b/src/main/java/org/toco/model/transaction_model.java
@@ -21,13 +21,13 @@ public class transaction_model {
     }
 //    GET TRANSACTION a user does return in transaction_entity array
     public transaction_entity[] getTransaction(Integer user_id){
-        String sql = "select * from transaction where user_id = (?)";
+        String sql = "select * from transaction where user_id = (?) order by tid desc";
         try (Connection connection = connector.connect() ;
              PreparedStatement command = connection.prepareStatement(sql)) {
             command.setInt(1, user_id);
             command.execute();
             ResultSet rs = command.getResultSet();
-            transaction_entity[] transactions = new transaction_entity[100];
+            transaction_entity[] transactions = new transaction_entity[getTransactionCount(user_id)];
             int i = 0;
             while(rs.next()){
                 transactions[i] = new transaction_entity(rs.getInt(2), rs.getInt(3), rs.getString(4), rs.getString(5));
diff --git a/src/main/java/org/toco/service/toco_service.java b/src/main/java/org/toco/service/toco_service.java
index bd7bc6f..b5a5f9e 100644
--- a/src/main/java/org/toco/service/toco_service.java
+++ b/src/main/java/org/toco/service/toco_service.java
@@ -32,7 +32,7 @@ public interface toco_service {
     );
 
     @WebMethod
-    public String getTransactions(
+    public String[] getTransactions(
             @WebParam(name = "user_id") Integer user_id
     );
 
diff --git a/src/main/java/org/toco/service/toco_service_impl.java b/src/main/java/org/toco/service/toco_service_impl.java
index c357cf7..06509ea 100644
--- a/src/main/java/org/toco/service/toco_service_impl.java
+++ b/src/main/java/org/toco/service/toco_service_impl.java
@@ -85,15 +85,15 @@ public class toco_service_impl implements toco_service {
     }
 
     @Override
-    public String getTransactions(Integer user_id) {
+    public String[] getTransactions(Integer user_id) {
         if(validateApiKey()){
             transaction_model transactionModel = new transaction_model();
             transaction_entity[] transactions = transactionModel.getTransaction(user_id);
 //            create transactions to a string with each transaction on a new line
-            String ret = "";
+            String[] ret = new String[transactionModel.getTransactionCount(user_id)];
             int len = transactionModel.getTransactionCount(user_id);
             for (int i = 0; i < len; i++) {
-                ret += transactions[i].toString() + "\n";
+                ret[i] =transactions[i].getAmount().toString()+", "+transactions[i].getImage()+", "+transactions[i].getStatus();
             }
             addLoggging("User with id " + user_id + " requested his transactions");
             return ret;
-- 
GitLab