Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
139 changes: 139 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -827,6 +827,145 @@ public class ExampleReadme {
```
</details>

<details>
<summary>
Consulta de saldo de un usuario específico
</summary>

<br>Este método recibe los siguientes parametros:
* Usuario y contraseña o Token
* Url APIs SW (Url Servicios SW solo es necesaria cuando se usa autenticación con usuario y contraseña)
* IdUser (UUID del usuario del cual se desea obtener el saldo)

**Ejemplo de consumo de la libreria para consultar el saldo de un usuario específico utilizando Token**

```java
package com.mycompany.examplereadme;

import Exceptions.AuthException;
import Exceptions.GeneralException;
import Services.BalanceAccount.SWBalanceAccountService;
import Utils.Responses.BalanceAccount.BalanceAcctResponse;
import java.io.IOException;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ExampleReadme {

public static void main(String[] args) {

try {
//Intancia del servicio de Consulta de saldo y autenticación con Token
SWBalanceAccountService sdk = new SWBalanceAccountService("T2lYQ0t4L0R...", "https://api.test.sw.com.mx");
BalanceAcctResponse response = null;
response = (BalanceAcctResponse) sdk.GetUserBalanceAccount(UUID.fromString("828f19b1-77dc-48bc-9cfa-d48b5cf7e30c"));

//Imprimimos los datos de la respuesta que se obtuvo
System.out.println(response.Status);
System.out.println(response.HttpStatusCode);
System.out.println(response.idUserBalance);
System.out.println(response.idUser);
System.out.println(response.stampsBalance);
System.out.println(response.stampsUsed);
System.out.println(response.expirationDate);
System.out.println(response.isUnlimited);
System.out.println(response.stampsAssigned);
if (response.lastTransaction != null) {
System.out.println("Folio: " + response.lastTransaction.folio);
System.out.println("ID Usuario: " + response.lastTransaction.idUser);
System.out.println("ID Usuario Receptor: " + response.lastTransaction.idUserReceiver);
System.out.println("Nombre Receptor: " + response.lastTransaction.nameReceiver);
System.out.println("Stamps In: " + response.lastTransaction.stampsIn);
System.out.println("Stamps Out: "
+ (response.lastTransaction.stampsOut != null ? response.lastTransaction.stampsOut : "null"));
System.out.println("Stamps Current: " + response.lastTransaction.stampsCurrent);
System.out.println("Comentario: " + response.lastTransaction.comment);
System.out.println("Fecha: " + response.lastTransaction.date);
System.out.println("Email Enviado: " + response.lastTransaction.isEmailSent);
} else {
System.out.println("No hay transacción disponible.");
}
//En caso de obtener error, este puede obtenerse de los siguientes campos
System.out.println(response.message);
System.out.println(response.messageDetail);
} catch (AuthException ex) {
System.out.println(ex);
} catch (GeneralException ex) {
Logger.getLogger(ExampleReadme.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(ExampleReadme.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

```

**Ejemplo de consumo de la libreria para consultar el saldo de un usuario específico utilizando Usuario y Contraseña**

```java
package com.mycompany.examplereadme;

import Exceptions.AuthException;
import Exceptions.GeneralException;
import Services.BalanceAccount.SWBalanceAccountService;
import Utils.Responses.BalanceAccount.BalanceAcctResponse;
import java.io.IOException;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ExampleReadme {

public static void main(String[] args) {

try {
//Intancia del servicio de Consulta de saldo y autenticación con Usuario y Contraseña
SWBalanceAccountService sdk = new SWBalanceAccountService("user", "password", "https://services.test.sw.com.mx", "https://api.test.sw.com.mx");
BalanceAcctResponse response = null;
response = (BalanceAcctResponse) sdk.GetUserBalanceAccount(UUID.fromString("828f19b1-77dc-48bc-9cfa-d48b5cf7e30c"));

//Imprimimos los datos de la respuesta que se obtuvo
System.out.println(response.Status);
System.out.println(response.HttpStatusCode);
System.out.println(response.idUserBalance);
System.out.println(response.idUser);
System.out.println(response.stampsBalance);
System.out.println(response.stampsUsed);
System.out.println(response.expirationDate);
System.out.println(response.isUnlimited);
System.out.println(response.stampsAssigned);
if (response.lastTransaction != null) {
System.out.println("Folio: " + response.lastTransaction.folio);
System.out.println("ID Usuario: " + response.lastTransaction.idUser);
System.out.println("ID Usuario Receptor: " + response.lastTransaction.idUserReceiver);
System.out.println("Nombre Receptor: " + response.lastTransaction.nameReceiver);
System.out.println("Stamps In: " + response.lastTransaction.stampsIn);
System.out.println("Stamps Out: "
+ (response.lastTransaction.stampsOut != null ? response.lastTransaction.stampsOut : "null"));
System.out.println("Stamps Current: " + response.lastTransaction.stampsCurrent);
System.out.println("Comentario: " + response.lastTransaction.comment);
System.out.println("Fecha: " + response.lastTransaction.date);
System.out.println("Email Enviado: " + response.lastTransaction.isEmailSent);
} else {
System.out.println("No hay transacción disponible.");
}
//En caso de obtener error, este puede obtenerse de los siguientes campos
System.out.println(response.message);
System.out.println(response.messageDetail);
} catch (AuthException ex) {
System.out.println(ex);
} catch (GeneralException ex) {
Logger.getLogger(ExampleReadme.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(ExampleReadme.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

```
</details>

<details>
<summary>
Agregar timbres
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding>
</properties>
<artifactId>SW-JAVA</artifactId>
<version>1.0.24.1</version>
<version>1.0.25.1</version>
<packaging>jar</packaging>
<scm>
<url>https://github.com/lunasoft/sw-sdk-java</url>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@

import java.io.IOException;
import java.util.UUID;

import Exceptions.AuthException;
import Exceptions.GeneralException;
import Services.SWService;
import Utils.Helpers.EnumBalanceStamp.AccountBalanceAction;
import Utils.Requests.BalanceAccount.BalanceAcctOptionsRequest;
import Utils.Requests.BalanceAccount.BalanceAcctRequest;
import Utils.Helpers.EnumBalanceStamp.AccountBalanceAction;
import Utils.Responses.IResponse;

/**
Expand Down Expand Up @@ -59,6 +60,22 @@ public IResponse GetBalanceAccount() throws AuthException, GeneralException, IOE
return BalanceAcctRequest.createBalanceAcctRequest(settings);
}

/**
* Obtiene el saldo de la cuenta de un usuario específico.
*
* @param idUser ID del usuario del cual se desea obtener el saldo.
* @return IResponse con el resultado de la operación.
* @throws AuthException Si la autenticación falla.
* @throws GeneralException Si ocurre un error general.
* @throws IOException Si hay un error de entrada/salida.
*/
public IResponse GetUserBalanceAccount(UUID idUser) throws AuthException, GeneralException, IOException {
BalanceAcctOptionsRequest settings = BalanceAcctOptionsRequest.getUserBalanceRequest(getToken(),
getURIAPI() == null ? getURI() : getURIAPI(), idUser,
getProxyHost(), getProxyPort());
return BalanceAcctRequest.createUserBalanceRequest(settings);
}

/**
* Realiza un movimiento de agregar saldo en la cuenta.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package Utils.Requests.BalanceAccount;

import java.util.UUID;

import Utils.Constants;
import Utils.Requests.IRequest;
import Utils.Helpers.EnumBalanceStamp.AccountBalanceAction;
import Utils.Requests.IRequest;

/**
* La clase BalanceAcctOptionsRequest representa las opciones de solicitud para
Expand Down Expand Up @@ -33,6 +34,16 @@ public static BalanceAcctOptionsRequest sendRequest(String token, String URIAPI,
proxyHost, proxyPort);
}

/**
* Método estático para crear una solicitud de obtención de saldo de cuenta de un usuario específico.
*/
public static BalanceAcctOptionsRequest getUserBalanceRequest(String token, String URIAPI, UUID idUser,
String proxyHost, int proxyPort) {
return new BalanceAcctOptionsRequest(token,
URIAPI + Constants.BALANCE_ACCOUNTV2_MANAGEMENT_PATH + "dealers/balance/users/" + idUser,
proxyHost, proxyPort);
}

/**
* Método estático para crear una solicitud de movimiento de saldo de cuenta.
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
package Utils.Requests.BalanceAccount;

import Exceptions.AuthException;
import Exceptions.GeneralException;
import Utils.Helpers.RequestHelper;
import Utils.Requests.IRequest;
import Utils.Responses.IResponse;
import Utils.Responses.BalanceAccount.BalanceAcctResponse;
import java.io.IOException;
import java.net.URI;

import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
Expand All @@ -20,6 +15,13 @@
import org.json.JSONException;
import org.json.JSONObject;

import Exceptions.AuthException;
import Exceptions.GeneralException;
import Utils.Helpers.RequestHelper;
import Utils.Requests.IRequest;
import Utils.Responses.BalanceAccount.BalanceAcctResponse;
import Utils.Responses.IResponse;

/**
* La clase BalanceAcctRequest maneja las solicitudes relacionadas con las
* operaciones de saldo de cuentas.
Expand All @@ -36,6 +38,11 @@ public static IResponse createBalanceStampRequest(IRequest request, String actio
return new BalanceAcctRequest().balanceAcctStampRequest(request, action, stamps, comment);
}

public static IResponse createUserBalanceRequest(IRequest request)
throws GeneralException, AuthException, IOException {
return new BalanceAcctRequest().balanceAcctRequest(request);
}

private IResponse balanceAcctRequest(IRequest request) throws GeneralException, AuthException, IOException {
try {
CloseableHttpClient client = HttpClients.createDefault();
Expand Down
118 changes: 113 additions & 5 deletions src/test/java/Tests/BalanceAccount/SWBalanceAccountServiceTest.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
package Tests.BalanceAccount;

import Exceptions.AuthException;
import Exceptions.GeneralException;
import Services.BalanceAccount.SWBalanceAccountService;
import Tests.Utils;
import Utils.Responses.BalanceAccount.BalanceAcctResponse;
import java.io.IOException;
import java.util.UUID;

import org.junit.Assert;
import org.junit.Test;

import Exceptions.AuthException;
import Exceptions.GeneralException;
import Services.BalanceAccount.SWBalanceAccountService;
import Tests.Utils;
import Utils.Responses.BalanceAccount.BalanceAcctResponse;

public class SWBalanceAccountServiceTest {
@Test
public void testBalanceAccountService() throws AuthException, GeneralException, IOException {
Expand Down Expand Up @@ -116,6 +117,113 @@ public void testBalanceAccountService_incorrectToken() {
}
}

@Test
public void testGetUserBalanceAccount() throws AuthException, GeneralException, IOException {
SWBalanceAccountService app = new SWBalanceAccountService(Utils.userSW, Utils.passwordSW, Utils.urlSW,
Utils.urlApiSW);
BalanceAcctResponse response = (BalanceAcctResponse) app
.GetUserBalanceAccount(UUID.fromString("828f19b1-77dc-48bc-9cfa-d48b5cf7e30c"));
System.out.println(response.Status);
System.out.println(response.HttpStatusCode);
System.out.println(response.idUserBalance);
System.out.println(response.idUser);
System.out.println(response.stampsBalance);
System.out.println(response.stampsUsed);
System.out.println(response.expirationDate);
System.out.println(response.isUnlimited);
System.out.println(response.stampsAssigned);
if (response.lastTransaction != null) {
System.out.println("Folio: " + response.lastTransaction.folio);
System.out.println("ID Usuario: " + response.lastTransaction.idUser);
System.out.println("ID Usuario Receptor: " + response.lastTransaction.idUserReceiver);
System.out.println("Nombre Receptor: " + response.lastTransaction.nameReceiver);
System.out.println("Stamps In: " + response.lastTransaction.stampsIn);
System.out.println("Stamps Out: "
+ (response.lastTransaction.stampsOut != null ? response.lastTransaction.stampsOut : "null"));
System.out.println("Stamps Current: " + response.lastTransaction.stampsCurrent);
System.out.println("Comentario: " + response.lastTransaction.comment);
System.out.println("Fecha: " + response.lastTransaction.date);
System.out.println("Email Enviado: " + response.lastTransaction.isEmailSent);
} else {
System.out.println("No hay transacción disponible.");
}
String expect_status = "success";
Assert.assertTrue(expect_status.equalsIgnoreCase(response.Status));
}

@Test
public void testGetUserBalanceAccount_authToken() throws Exception {
SWBalanceAccountService app = new SWBalanceAccountService(Utils.tokenSW, Utils.urlApiSW);
BalanceAcctResponse response = (BalanceAcctResponse) app
.GetUserBalanceAccount(UUID.fromString("828f19b1-77dc-48bc-9cfa-d48b5cf7e30c"));

System.out.println(response.Status);
System.out.println(response.HttpStatusCode);
System.out.println(response.idUserBalance);
System.out.println(response.idUser);
System.out.println(response.stampsBalance);
System.out.println(response.stampsUsed);
System.out.println(response.expirationDate);
System.out.println(response.isUnlimited);
System.out.println(response.stampsAssigned);
if (response.lastTransaction != null) {
System.out.println("Folio: " + response.lastTransaction.folio);
System.out.println("ID Usuario: " + response.lastTransaction.idUser);
System.out.println("ID Usuario Receptor: " + response.lastTransaction.idUserReceiver);
System.out.println("Nombre Receptor: " + response.lastTransaction.nameReceiver);
System.out.println("Stamps In: " + response.lastTransaction.stampsIn);
System.out.println("Stamps Out: "
+ (response.lastTransaction.stampsOut != null ? response.lastTransaction.stampsOut : "null"));
System.out.println("Stamps Current: " + response.lastTransaction.stampsCurrent);
System.out.println("Comentario: " + response.lastTransaction.comment);
System.out.println("Fecha: " + response.lastTransaction.date);
System.out.println("Email Enviado: " + response.lastTransaction.isEmailSent);
} else {
System.out.println("No hay transacción disponible.");
}
String expect_status = "success";
Assert.assertTrue(expect_status.equalsIgnoreCase(response.Status));
}

@Test
public void testGetUserBalanceAccount_incorrectToken() {
try {
SWBalanceAccountService app = new SWBalanceAccountService("wrong token", Utils.urlApiSW);
BalanceAcctResponse response = (BalanceAcctResponse) app
.GetUserBalanceAccount(UUID.fromString("828f19b1-77dc-48bc-9cfa-d48b5cf7e30c"));
System.out.println(response.Status);
System.out.println(response.HttpStatusCode);
System.out.println(response.idUserBalance);
System.out.println(response.idUser);
System.out.println(response.stampsBalance);
System.out.println(response.stampsUsed);
System.out.println(response.expirationDate);
System.out.println(response.isUnlimited);
System.out.println(response.stampsAssigned);
if (response.lastTransaction != null) {
System.out.println("Folio: " + response.lastTransaction.folio);
System.out.println("ID Usuario: " + response.lastTransaction.idUser);
System.out.println("ID Usuario Receptor: " + response.lastTransaction.idUserReceiver);
System.out.println("Nombre Receptor: " + response.lastTransaction.nameReceiver);
System.out.println("Stamps In: " + response.lastTransaction.stampsIn);
System.out.println("Stamps Out: "
+ (response.lastTransaction.stampsOut != null ? response.lastTransaction.stampsOut : "null"));
System.out.println("Stamps Current: " + response.lastTransaction.stampsCurrent);
System.out.println("Comentario: " + response.lastTransaction.comment);
System.out.println("Fecha: " + response.lastTransaction.date);
System.out.println("Email Enviado: " + response.lastTransaction.isEmailSent);
} else {
System.out.println("No hay transacción disponible.");
}
} catch (AuthException e) {
Assert.fail();
} catch (GeneralException e) {
Assert.fail();
} catch (IOException e) {
Assert.fail();
}
}


@Test
public void testAddStampsByToken_Sucess() {
Expand Down
Loading