8000 GitHub - Pumpkin-A/EWallet
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Pumpkin-A/EWallet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EWallet

EWallet разработано для обработки транзакций платёжной системы. Приложение реализовано в виде HTTP сервера, реализующее REST API.

Требования

  • Язык реализации – Go 1.21
  • База данных – PostgreSQL

Установка и запуск

  • Клонирование репозитория
git clone https://github.com/Pumpkin-A/EWallet.git
  • Установка зависимости проекта
go mod download
  • Установка собственных данных "user" и "password" в файле connection.go

Использование

В приложении реализованы следующие методы

Создание кошелька

Создает новый кошелек с уникальным ID. Идентификатор генерируется сервером. Созданный кошелек должен иметь сумму 100.0 у.е. на балансе
Эндпоинт:

POST /api/v1/wallet

Параметры запроса отсутствуют
Ответ содержит в теле JSON-объект с текущим состоянием кошелька
Ответ с статусом 200 если кошелек найден

{
  "id": "5b53700ed469fa6a09ea72bb78f36fd9",
  "balance": 100
}

Перевод средств с одного кошелька на другой

Эндпоинт:

POST /api/v1/wallet/{walletId}/send

Параметры запроса:

  • walletId – строковый ID кошелька, указан в пути запроса
  • JSON-объект в теле запроса с параметрами:
    • to – ID кошелька, куда нужно перевести деньги
    • amount – сумма перевода

Пример запроса:

http://localhost:8080/api/v1/wallet/94c0e247-5e9a-4360-9035-cf895677b57e/send

Тело запроса: application/json

{
"to": "5ceea3fb-31fe-46b3-aad4-9d85080353dd",
"amount": 5.6
}

Ответ:

  • cтатус ответа 200, если перевод успешен
  • Статус ответа 404 если исходящий кошелек не найден
  • Статус ответа 400 если целевой кошелек не найден или на исходящем нет нужной суммы

Пример ответа:

{
	"server response: ": "The transfer was successfully completed"
}

Получение историй входящих и исходящих транзакций

Эндпоинт:

GET /api/v1/wallet/{walletId}/history

Параметры запроса:

  • walletId – строковый ID кошелька, указан в пути запроса

Пример запроса:

http://localhost:8080/api/v1/wallet/94c0e247-5e9a-4360-9035-cf895677b57e/history

Ответ:

  • Ответ с статусом 200 если кошелек найден. Ответ должен содержать в теле массив JSON-объектов с входящими и исходящими транзакциями кошелька. Каждый объект содержит параметры:
    • time – дата и время перевода в формате RFC 3339
    • from – ID исходящего кошелька
    • to – ID входящего кошелька
    • amount – сумма перевода. Дробное число
  • Статус ответа 404 если указанный кошелек не найден

Пример ответа:

[
	{
		"id": "9f472903-fd09-4e29-b9eb-298fa9112e68",
		"time": "2024-02-08T14:37:49+03:00",
		"from": "94c0e247-5e9a-4360-9035-cf895677b57e",
		"to": "5ceea3fb-31fe-46b3-aad4-9d85080353dd",
		"amount": 5.6
	},
	{
		"id": "dd6b3e94-b2ff-43ec-bcc7-79267bb89d74",
		"time": "2024-02-08T14:37:48+03:00",
		"from": "94c0e247-5e9a-4360-9035-cf895677b57e",
		"to": "5ceea3fb-31fe-46b3-aad4-9d85080353dd",
		"amount": 5.6
	}
]

Получение текущего состояния кошелька

Эндпоинт:

GET /api/v1/wallet/{walletId}

Параметры запроса:

  • walletId – строковый ID кошелька, указан в пути запроса

Пример запроса:

http://localhost:8080/api/v1/wallet/94c0e247-5e9a-4360-9035-cf895677b57e

Ответ:

  • Ответ с статусом 200 если кошелек найден. Ответ должен содержать в теле JSON-объект с текущим состоянием кошелька. Объект содержит параметры:
    • id – строковый ID кошелька. Генерируется сервером
    • balance – дробное число, баланс кошелька
  • Статус ответа 404 если кошелек не найден

Пример ответа:

{
	"id": "94c0e247-5e9a-4360-9035-cf895677b57e",
	"balance": 87.1
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0