# Vandar Service
###### Sprint: 5
### Outcome:
users can deposit fiat and withdraw fiat by connection to the Vandar
### Implementation description:
#### File destination:
{$Dena_Path}/app/services/vandar_service.rb
{$Dena_Path}/app/api/v2/account/deposits.rb
{$Dena_Path}/app/api/v2/account/withdraw.rb
{$Dena_Path}/app/models/withdraw.rb
{$Dena_Path}/app/models/deposit.rb
#### Commits:
3b189b07
2cd9b4ad
f83585dd
b832b0fb
#### What did we implement:
in the Opendax, there is no way to deposit or withdraw for fiat,
so we use the Vandar as a third party to connect real banks for deposit and withdraws.
for talking with The Vandar, we implemented a new service named VandarService (vandar_service.rb).
VandarService has four part, Login, Deposit, Withdraw, Transaction
##### login part:
this part is used for login in the Vandar with mobile and password that these two must exist in the config file
this part has a `login` method that automatically calls when creating object from this service
##### deposit part:
this part is used for doing deposits
this part has a three methods:
-`generate_token`: use for generate unique Bank Gateway token
-`transaction`: use for finding specific deposit in the Vandar
-`verify`: use for verify specific deposit in the Vandar
##### withdraw part:
this part is used for doing withdraws
this part has a four methods:
-`list_withdraw`: use for listing withdraws (never use in process)
-`info_withdraw`: use for get specific withdraw information from the Vandar
-`delete_withdraw`: use for delete specific withdraw in the Vandar (never use in process)
##### transaction part:
- `list_transactions`: use for listing transaction with fromDate and toDate as parameters (use it in withdraw Job)
#### note:
we use Faraday Gem to send request to vandar