{"id":18005739,"url":"https://github.com/kovstas/money-transfer","last_synced_at":"2025-10-27T02:10:32.151Z","repository":{"id":139849859,"uuid":"100354326","full_name":"kovstas/money-transfer","owner":"kovstas","description":"Money Transfer API demo app","archived":false,"fork":false,"pushed_at":"2017-08-15T08:25:42.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-09T07:56:13.098Z","etag":null,"topics":["akka-http","h2","rest-api","slick"],"latest_commit_sha":null,"homepage":null,"language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kovstas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-15T08:04:48.000Z","updated_at":"2017-08-15T08:06:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"754f3011-41e9-4b38-8161-1e6295a51559","html_url":"https://github.com/kovstas/money-transfer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kovstas/money-transfer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kovstas%2Fmoney-transfer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kovstas%2Fmoney-transfer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kovstas%2Fmoney-transfer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kovstas%2Fmoney-transfer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kovstas","download_url":"https://codeload.github.com/kovstas/money-transfer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kovstas%2Fmoney-transfer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281202140,"owners_count":26460564,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-27T02:00:05.855Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["akka-http","h2","rest-api","slick"],"created_at":"2024-10-30T00:21:22.697Z","updated_at":"2025-10-27T02:10:32.124Z","avatar_url":"https://github.com/kovstas.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About\n\nTest project RESTful API for money transfers between internal users and accounts\n\n[![Build Status](https://travis-ci.org/PepRoll/money-transfer.svg?branch=master)](https://travis-ci.org/PepRoll/money-transfer)\n \nThe application using:\n* akka-http\n* slick\n* H2 in memory database\n\n#### Run\n\n`sbt run` - The app start server on localhost port 8080. \nAn H2 initialized with several exchange rates.\n\n#### Test\n\n`sbt test` - Start all tests. \n\n# Available Services\n\nAPI root URL: [http://localhost:8080/api/](http://localhost:8080/api/)\n\n#### User resource ( [/api/users](http://localhost:8080/api/users) )\n\n| HTTP METHOD        | PATH           |  USAGE |\n| ------------- |:-------------|:-----|\n| GET     | /users  |   get all users |\n| GET     | /users/{userId} | get user by id |\n| POST    | /users/    |  create a new user |\n| PUT     | /users/{userId} | update user |\n| DELETE  | /users/{userId}     | remove user |\n| GET     | /users/{userId}/accounts | get all accounts by user id |\n| GET     | /users/{userId}/accounts/{accountId} | get account by id with filter by user id |\n| GET     | /users/{userId}/accounts/{accountId}/transfers | get all transfers with filer by user and account ids |\n| GET     | /users/{userId}/accounts/{accountId}/transfers/{transferId} | get transfer by id with filter by user and account |\n| GET     | /users/{userId}/accounts/{accountId}/transfers/{transferId}/rate | get rate by transfer id with filter by user and account  |\n\n#### Account resource ( [/api/accounts](http://localhost:8080/api/accounts) )\n\n| HTTP METHOD        | PATH           |  USAGE |\n| ------------- |:-------------|:-----|\n| GET     | /accounts | get all accounts |\n| GET     | /accounts/{accountId} | get account by id |\n| POST    | /accounts/ | create a new account |\n| PUT     | /accounts/ | update account |\n| DELETE  | /accounts/{accountId} | remove account |\n| GET     | /accounts/{accountId}/transfers | get all transfers by account id |\n| GET     | /accounts/{accountId}/transfers/{transferId} | get transfer by id with filter by account id |\n| GET     | /accounts/{accountId}/transfers/{transferId}/rate | get rate by transfer id with filter by account id  |\n\n#### Transfer resource ( [/api/transfers](http://localhost:8080/api/transfers) )\n\n| HTTP METHOD        | PATH           |  USAGE |\n| ------------- |:-------------|:-----|\n| GET     | /transfers | get all transfers |\n| GET     | /transfers/{transferId} | get transfer by id |\n| POST    | /transfers/ | create a new transfer |\n| GET     | /transfers/{transferId}/rate | get rate by transfer id |\n\n#### Rate resource ( [/api/rates](http://localhost:8080/api/rates) )\n\n| HTTP METHOD        | PATH           |  USAGE |\n| ------------- |:-------------|:-----|\n| GET     | /rates | get all rates |\n| GET     | /rates/{rateId} | get rate by id |\n| POST    | /rates/ | create a new rate |\n| PUT     | /rates/ | update rate |\n| DELETE  | /rates/{rateId}     | remove rate |\n\n## Sample JSON\n\nCurrency values: `RUB | USD | EUR` \n\n##### User\n```json\n{\n  \"firstName\": \"Harrison\",\n  \"lastName\": \"Ford\"\n}\n```\n\n##### Account\n```json\n{\n  \"currency\": \"USD\",\n  \"balance\": 10000,\n  \"userId\": 1\n}\n```\n\n##### Transfer\n```json\n{\n  \"sourceAccount\": 1,\n  \"targetAccount\": 2,\n  \"amount\": 200,\n  \"exchangeRateId\": 2\n}\n```\n\n##### Rate\n```json\n{\n  \"sourceCurrency\": \"RUB\",\n  \"targetCurrency\": \"USD\",\n  \"exchangeRate\": 30\n}\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkovstas%2Fmoney-transfer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkovstas%2Fmoney-transfer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkovstas%2Fmoney-transfer/lists"}