Initial commit

This commit is contained in:
Yaser
2026-08-13 20:00:11 +03:30
commit b7d0fcf68b
2029 changed files with 126991 additions and 0 deletions

6
.babelrc Normal file
View File

@@ -0,0 +1,6 @@
{
"plugins": [
"transform-es2015-modules-commonjs"
]
}

3
.dockerignore Normal file
View File

@@ -0,0 +1,3 @@
*Dockerfile*
*docker-compose*
node_modules

1
.domains.example Normal file
View File

@@ -0,0 +1 @@
localhost,.app.local,.openfinex.io,.devkube.com,.openware.work,.opendax.app

204
.drone.yml Normal file
View File

@@ -0,0 +1,204 @@
---
kind: pipeline
name: "Push"
concurrency:
limit: 2
steps:
- name: "Test & Build"
image: node:12.13.1
commands:
- export REACT_APP_GIT_SHA=$(git rev-parse --short HEAD)
- echo $REACT_APP_GIT_SHA > .tags
- export BUILD_DOMAIN=$(test -e .domains && cat .domains)
- export BUILD_EXPIRE=$(date -d "+1 month" +%s000)
- npm -g install yarn
- yarn install
- yarn lint
- yarn test:ci --collectCoverage=true
- yarn build
# - name: "Stage with mock server"
# image: instrumentisto/rsync-ssh
# environment:
# PRIVATE_KEY:
# from_secret: deploy_key
# commands:
# - echo "$PRIVATE_KEY" | base64 -d > id_rsa
# - chmod 0600 id_rsa
# - cd build/config/
# - echo "window.env={api:{authUrl:'http://api-v2.mock.openware.work/api/v2/barong',tradeUrl:'http://api-v2.mock.openware.work/api/v2/peatio',applogicUrl:'http://api-v2.mock.openware.work/api/v2/applogic',rangerUrl:'ws://ranger.mock.openware.work/api/v2/ranger'}};" > env.js
# - cat env.js
# - cd /drone/src
# - rsync -avzhre "ssh -i id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" build/ mock@mock.openware.work:/home/mock/builds/${DRONE_COMMIT_SHA:0:7}
# - rsync -avzhre "ssh -i id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" coverage/ mock@mock.openware.work:/home/mock/builds/${DRONE_COMMIT_SHA:0:7}-coverage
# - echo "http://${DRONE_COMMIT_SHA:0:7}.mock.openware.work"
# - echo "http://${DRONE_COMMIT_SHA:0:7}-coverage.mock.openware.work"
# - name: "Notify staging"
# image: plugins/slack
# settings:
# webhook:
# from_secret: baseapp_slack_webhook
# channel:
# from_secret: baseapp_slack_channel
# template: >
# {{#success build.status}}
# [SUCCESS] (Base Application) Branch {{ build.branch }} by {{ build.author }} staging has succeeded!
#
# Visit http://{{ truncate build.commit 7 }}.mock.openware.work to check it out!
# Coverage report: http://{{ truncate build.commit 7 }}-coverage.mock.openware.work
# {{else}}
# [FAILURE] Branch {{ build.branch }} by {{ build.author }} staging has failed!
# {{/success}}
# Check the build info here: {{ build.link }}
# when:
# status: [success, failure]
trigger:
event:
- push
branch:
exclude:
- master
- "2-*-stable"
---
kind: pipeline
name: "New version"
concurrency:
limit: 2
steps:
- name: "Test"
image: node:12.13.1
commands:
- npm -g install yarn
- yarn install
- yarn lint
- yarn test:ci --collectCoverage=true
- name: "Bump & Tag"
image: quay.io/openware/sdk-citools:2.6.7
environment:
BRANCH_NAME: ${DRONE_BRANCH}
REPO_NAME: ${DRONE_REPO}
GITHUB_API_KEY:
from_secret: kite_bot_key
commands:
- BUNDLE_GEMFILE=/sdk/Gemfile bundle exec rake --rakefile=/sdk/Rakefile ci:prebuild
- name: "Build Docker image"
image: plugins/docker
settings:
username:
from_secret: quay_username
password:
from_secret: quay_password
repo:
from_secret: quay_repo
registry: quay.io
environment:
REACT_APP_SENTRY_KEY:
from_secret: master_sentry_key
REACT_APP_SENTRY_ORGANIZATION:
from_secret: master_sentry_organization
REACT_APP_SENTRY_PROJECT:
from_secret: master_sentry_project
- name: "Redeploy on master.devkube.com"
image: rubykube/microkube:0.2.0
environment:
WEBHOOK_JWT_SECRET:
from_secret: devkube_webhook_secret
DOCKER_REPO:
from_secret: quay_repo
commands:
- export latest_image=$DOCKER_REPO:$(cat .tags)
- cd /home/app
- bundle exec rake payload:send[frontend,$latest_image,http://$DRONE_BRANCH.devkube.com:1337]
when:
branch:
- master
- name: "Push and Notify"
image: quay.io/openware/sdk-citools:2.6.7
environment:
BOT_USERNAME: kite-bot
BOT_NAME: Kite Bot
BOT_EMAIL: kite-bot@heliostech.fr
BRANCH_NAME: ${DRONE_BRANCH}
SDK_BRANCH: ${DRONE_BRANCH}
REPO_NAME: ${DRONE_REPO}
TELEGRAM_BOT_TOKEN:
from_secret: baseapp_telegram_bot_token
TELEGRAM_CHAT_ID:
from_secret: baseapp_telegram_chat_id
SLACK_TOKEN:
from_secret: baseapp_slack_token
SLACK_CHANNEL:
from_secret: baseapp_slack_channel
GITHUB_API_KEY:
from_secret: kite_bot_key
commands:
- BUNDLE_GEMFILE=/sdk/Gemfile bundle exec rake --rakefile=/sdk/Rakefile ci:postbuild[/drone/src]
when:
branch:
- master
- "2-*-stable"
# http://plugins.drone.io/drone-plugins/drone-slack/
- name: Slack Notify
image: plugins/slack
settings:
webhook:
from_secret: slack_webhook
channel:
from_secret: slack_webhook_channel
template: >
*{{uppercasefirst repo.name}}*
{{#success build.status}}
[SUCCESS] Branch {{ build.branch }} by {{ build.author }}. Good job.
{{else}}
[FAILURE] Branch {{ build.branch }} by {{ build.author }}. Fix me please.
{{/success}}
when:
branch:
- master
- "2-*-stable"
- name: "Update global OpenDAX version"
image: quay.io/openware/goci:0.0.11
environment:
GIT_TOKEN:
from_secret: kite_bot_key
commands:
- /app/goci -component=frontend versions
when:
branch:
- "*-stable"
- name: "Build custom baseapp with assembly line"
image: curlimages/curl
environment:
SERVER: https://ci.openware.work
REPO: openware/assembly-line
BRANCH: master
COMPONENT: baseapp
DRONE_TOKEN:
from_secret: drone_token
commands:
- COMPONENT_VERSION=$(cat .tags)
- "curl -s -XPOST -H \"Authorization: Bearer $DRONE_TOKEN\" -i \"$SERVER/api/repos/$REPO/builds?branch=$BRANCH&ASSEMBLY_COMPONENT_VERSION=$COMPONENT_VERSION&ASSEMBLY_COMPONENT=$COMPONENT\""
trigger:
branch:
- master
- "2-*-stable"
event:
- push
image_pull_secrets:
- dockerconfigjson

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
*.sh text eol=lf

31
.gitignore vendored Normal file
View File

@@ -0,0 +1,31 @@
/.npmrc
# dependencies
/node_modules
# testing
/coverage
# production
/build
/.idea
/android
/ios
.gradle/
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
.env
env.js
npm-debug.log*
yarn-debug.log*
yarn-error.log*
index.css
# environment config
public/config/

1
.nvmrc Normal file
View File

@@ -0,0 +1 @@
v10.15.0

21
.prettierrc Normal file
View File

@@ -0,0 +1,21 @@
{
"jsxBracketSameLine": true,
"singleQuote": true,
"overrides": [
{
"files": ["**/*.css", "**/*.scss", "**/*.pcss", "**/*.html"],
"options": {
"singleQuote": false,
"tabWidth": 4
}
}
],
"jsxSingleQuote": false,
"printWidth": 120,
"tabWidth": 4,
"endOfLine": "auto",
"semi": true,
"tslintIntegration": true,
"stylelintIntegration": true,
"ignorePath": ".gitignore"
}

15
.stylelintrc.json Normal file
View File

@@ -0,0 +1,15 @@
{
"extends": "stylelint-config-standard",
"plugins": [
"stylelint-order"
],
"rules": {
"at-rule-no-unknown": null,
"order/order": [
"custom-properties",
"declarations"
],
"order/properties-alphabetical-order": true,
"no-descending-specificity": null
}
}

45
.yarnclean Normal file
View File

@@ -0,0 +1,45 @@
# test directories
__tests__
test
tests
powered-test
# asset directories
docs
doc
website
images
assets
# examples
example
examples
# code coverage directories
coverage
.nyc_output
# build scripts
Makefile
Gulpfile.js
Gruntfile.js
# configs
appveyor.yml
circle.yml
codeship-services.yml
codeship-steps.yml
wercker.yml
.tern-project
.gitattributes
.editorconfig
.*ignore
.eslintrc
.jshintrc
.flowconfig
.documentup.json
.yarn-metadata.json
.travis.yml
# misc
*.md

35
Dockerfile Normal file
View File

@@ -0,0 +1,35 @@
# syntax=docker/dockerfile:1.4
# Fast app image — node_modules from deps base (custom/gereh-deps:1).
# Rebuild deps when yarn.lock changes: docker build -f Dockerfile.deps -t custom/gereh-deps:1 .
ARG DEPS_IMAGE=custom/gereh-deps:1
FROM ${DEPS_IMAGE} AS builder
WORKDIR /home/node
COPY --chown=node:node . .
ARG BUILD_EXPIRE
ARG BUILD_DOMAIN
ARG REACT_APP_SKIP_API_KEY_2FA=
ARG REACT_APP_SENTRY_KEY=${REACT_APP_SENTRY_KEY:-"68c679b9cde2452db4d7ceb99b96e20d"}
ARG REACT_APP_SENTRY_ORGANIZATION=${REACT_APP_SENTRY_ORGANIZATION:-"o4504055431430144"}
ARG REACT_APP_SENTRY_PROJECT=${REACT_APP_SENTRY_PROJECT:-"4504055438311424"}
ENV REACT_APP_SENTRY_KEY=${REACT_APP_SENTRY_KEY}
ENV REACT_APP_SENTRY_ORGANIZATION=${REACT_APP_SENTRY_ORGANIZATION}
ENV REACT_APP_SENTRY_PROJECT=${REACT_APP_SENTRY_PROJECT}
ENV REACT_APP_SKIP_API_KEY_2FA=${REACT_APP_SKIP_API_KEY_2FA}
ENV BUILD_DOMAIN=${BUILD_DOMAIN}
USER node
RUN sed -i 's/\r$//' scripts/build.sh && bash scripts/build.sh
FROM nginx:mainline-alpine
COPY --from=builder /home/node/build /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 3000
HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \
CMD wget -q -O /dev/null http://127.0.0.1:3000/health || exit 1

20
Dockerfile.deps Normal file
View File

@@ -0,0 +1,20 @@
# syntax=docker/dockerfile:1.4
# Heavy layer: yarn install. Rebuild only when yarn.lock changes.
# docker build -f Dockerfile.deps -t custom/gereh-deps:1 .
FROM node:12.13.1
WORKDIR /home/node
RUN npm config set strict-ssl false \
&& yarn config set strict-ssl false \
&& yarn config set network-timeout 600000
RUN npm i -g yarn
COPY package.json yarn.lock ./
ENV CYPRESS_INSTALL_BINARY=0
USER node
RUN mkdir -p /home/node/.cache/yarn && yarn install --frozen-lockfile --network-timeout 600000 --non-interactive --verbose

141
LICENSE.md Normal file
View File

@@ -0,0 +1,141 @@
# Creative Commons CC-BY-NC-ND-4.0 International Public License
By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.
## Section 1 Definitions.
a. __Adapted Material__ means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
b. __Copyright and Similar Rights__ means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
e. __Effective Technological Measures__ means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
f. __Exceptions and Limitations__ means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
h. __Licensed Material__ means the artistic or literary work, database, or other material to which the Licensor applied this Public License.
i. __Licensed Rights__ means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.
h. __Licensor__ means the individual(s) or entity(ies) granting rights under this Public License.
i. __NonCommercial__ means not primarily intended for or directed towards commercial advantage or monetary compensation. For purposes of this Public License, the exchange of the Licensed Material for other material subject to Copyright and Similar Rights by digital file-sharing or similar means is NonCommercial provided there is no payment of monetary compensation in connection with the exchange.
j. __Share__ means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.
k. __Sui Generis Database Rights__ means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
l. __You__ means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning.
## Section 2 Scope.
a. ___License grant.___
1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:
A. reproduce and Share the Licensed Material, in whole or in part, for NonCommercial purposes only; and
B. produce and reproduce, but not Share, Adapted Material for NonCommercial purposes only.
2. __Exceptions and Limitations.__ For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.
3. __Term.__ The term of this Public License is specified in Section 6(a).
4. __Media and formats; technical modifications allowed.__ The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
5. __Downstream recipients.__
A. __Offer from the Licensor Licensed Material.__ Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
B. __No downstream restrictions.__ You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
6. __No endorsement.__ Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
b. ___Other rights.___
1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this Public License.
3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties, including when the Licensed Material is used other than for NonCommercial purposes.
## Section 3 License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the following conditions.
a. ___Attribution.___
1. If You Share the Licensed Material, You must:
A. retain the following if it is supplied by the Licensor with the Licensed Material:
i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of warranties;
v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and
C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.
For the avoidance of doubt, You do not have permission under this Public License to Share Adapted Material.
2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.
3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.
## Section 4 Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database for NonCommercial purposes only and provided You do not Share Adapted Material;
b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and
c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.
## Section 5 Disclaimer of Warranties and Limitation of Liability.
a. __Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.__
b. __To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.__
c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.
## Section 6 Term and Termination.
a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.
b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
## Section 7 Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.
## Section 8 Interpretation.
a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.
c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.
d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.

248
README.md Normal file
View File

@@ -0,0 +1,248 @@
<div dir="rtl">
# Gereh — فرانت Fibitex (BaseApp)
**Gereh** فورک BaseApp — UI فعلی staging (`beta.fibitex.com`).
## راه‌اندازی
<div dir="ltr">
```bash
yarn install && yarn start-mock
```
</div>
مستندات: [`Docs/04-gereh-frontend.md`](../Docs/04-gereh-frontend.md) · [`Docs/Fibitex-staging-deploy.md`](../Docs/Fibitex-staging-deploy.md)
</div>
---
![Cryptocurrency Exchange Platform - Baseapp](https://github.com/openware/meta/raw/main/images/github_baseapp.png)
<h3 align="center">
<a href="https://www.openware.com/sdk/docs.html#baseapp">Guide</a> <span>&vert;</span>
<a href="https://www.openware.com/sdk/api.html">API Docs</a> <span>&vert;</span>
<a href="https://www.openware.com/">Consulting</a> <span>&vert;</span>
<a href="https://t.me/peatio">Community</a>
</h3>
<h6 align="center">Component part of <a href="https://github.com/openware/opendax">OpenDAX Trading Platform</a></h6>
---
# OpenDAX BaseApp UI
## User Interface for Trading and Wallets Management
React application to build a trading platform interface for use with OpenDAX: https://github.com/openware/opendax
You can see an example of a live application running at: https://www.openfinex.io/
If you need customization from the experts contact us: https://www.openware.com/
## License
Please note, that BaseApp license only allows Non-Commercial use of this component. To purchase the Commercial license, please contact us at hello@openware.com.
## Install dependencies
```bash
$ yarn install
```
## Run in developement mode
```bash
$ yarn start-mock
```
This command will also start a fake api backend for helping development.
Once you happy with the result, save, build an image and run it with OpenDAX docker compose system.
## Execute tests
In `<rootDir>`
```bash
$ yarn test
```
Check test coverage:
```bash
$ yarn test -- --coverage --watchAll
```
For more options for `jest` run `yarn test --help`.
## Configuration documentation
Configuration file is located in `public/config/env.js`
| Argument                 | Description                                                 |
| --------------------- | ------------------------------------------------------------ |
| `api`    | URLs of `barong`, `peatio`, `applogic` and `ranger` API endpoints. You can use mockserver (<https://github.com/openware/mockserver>) with default `env.js` values |
| `minutesUntilAutoLogout`               | Autologout time in minutes |
| `withCredentials`               | `false` or `true` if you want to include cookies as part of the request(https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials) |
| `gaTrackerKey` | Google Analytics tracker key |
| `ga4TrackerKey` | Google Analytics tracker key V4 |
| `rangerReconnectPeriod` | Reconnection time for the Ranger WS service in minutes |
| `msAlertDisplayTime` |  Alert message display duration in milliseconds |
| `kycSteps` |  List of label names for KYC process |
## Available Docker build args
While building a Docker image you can pass build-dependant arguments using `--build-arg`:
`docker build -t baseapp:latest
--build-arg BUILD_DOMAIN="example.com" .`
| Argument | Description |
| -------------- | ------------------------------------------------------ |
| `BUILD_EXPIRE` | Unix Timestamp of the build expiration date in seconds |
| `BUILD_DOMAIN` | Domain which you'd like to use during the deployment |
## Build mobile app
Install dependencies using npm. Important for mobile app development.
```bash
npm install
```
Build frontend
```bash
yarn build
```
Generate a native project (ios, android)
```bash
ionic capacitor add <platform>
```
To build a native app you should have Xcode or Android studio on your local machine.
## Build IOS app
**1. Install Xcode**
Xcode is the IDE for creating native iOS apps. It includes the iOS SDK and Xcode command-line tools. Xcode can be downloaded for free with an Apple account or it can be installed through the App Store.
Once Xcode is installed, make sure the command-line tools are selected for use:
```bash
xcode-select --install
```
**2. Set up a development team**
All iOS apps must be code signed, even for development. Luckily, Xcode makes this easy with automatic code signing. The only prerequisite is an Apple ID.
Open Xcode and navigate to **Xcode » Preferences » Accounts**. Add an Apple ID if none are listed. Once logged in, a Personal Team will appear in the team list of the Apple ID.
**3. Create an iOS Simulator**
You can test your mobile application with a connected Iphone device to the Mac or using IOS Simulator.
Open Xcode and navigate to **Window » Devices and Simulators**. Create an **iPhone 11** simulator if one does not already exist.
**4. Set configs**
Open the `capacitor.config.json` file and modify the `appId` property.
Put the name of BE server:
```json
"server": {
"hostname": "example.openware.work"
}
```
**5. Open the project in Xcode.**
Launch Xcode with a prepared app:
```bash
ionic capacitor run ios
```
**6. Check Xcode configuration**
In Project navigator, select the project root to open the project editor. Under the **Identity section**, verify that the **Package ID** that was set matches the Bundle Identifier.
In the same project editor, under the **Signing section**, ensure Automatically manage signing is enabled. Then, select a Development Team. Given a Development Team, Xcode will attempt to automatically prepare provisioning and signing.
**7. Update native app with the changes**
With each meaningful change, Ionic apps must be built into web assets before the change can appear on iOS simulators and devices. The web assets then must be copied into the native project:
```bash
ionic capacitor copy ios
```
**8. Build IOS app**
To receive an executable app file run 'build' command on Xcode. You need to have an Apple Developer account to be able to extract an executable file from Xcode.
## Build Android app
**1. Install Android studio**
Android Studio is IDE, that provides the fastest tools for building apps on every type of Android device.
**2. Open the `capacitor.config.json` file and modify the `linuxAndroidStudioPath` property.**
Run next command
```bash
whereis android-studio
```
**3. Build your android application**
```bash
ionic capacitor add android
```
**4. Launch android application with Android Studio**
```bash
ionic capacitor run android
```
**5. Android Studio configuration**
Select connected android device or configure device simulator, which required
**6. Update app with the changes**
```bash
ionic capacitor copy android [options]
```
**7. Set ANDROID_SDK_ROOT variale**
Set android ask path to ANDROID_SDK_ROOT or write sdk.dir variable in android/local.properties file (it doesn't exist as a default)
**8. Build android app**
Build android app using Android Studio Build tab
or you can build apk file with command line
Debug build:
```bash
ionic capacitor copy android && cd android && ./gradlew assembleDebug && cd ..
```
Release build:
For release build you have to create keystore path and keystore alias and run next command:
```bash
cd android &&
./gradlew assembleRelease &&
cd app/build/outputs/apk/release &&
jarsigner -keystore YOUR_KEYSTORE_PATH -storepass YOUR_KEYSTORE_PASS app-release-unsigned.apk YOUR_KEYSTORE_ALIAS &&
zipalign 4 app-release-unsigned.apk app-release.apk
```
## Happy trading with OpenDAX BaseApp UI
If you have designed something beautiful with it, we would love to see it!
And if you have any comments, feedback and suggestions - we are happy to hear from you here at GitHub or at https://openware.com
## Licensing
This code is open for helping private modification and performing customer demonstration, you can use it for raising capital.
You cannot use it for a live platform without getting a commercial license from us.
Contact us if you'd like to purchase a commercial license.
## Partners
If you would like to fork, and modify this UI to create a BaseApp theme, we would be happy to setup a partnership program and sell your work provided a revenue sharing.
Made with love from Paris and Kiev.

1
VERSION Normal file
View File

@@ -0,0 +1 @@
2.6.0

1
__mocks__/fileMock.js Normal file
View File

@@ -0,0 +1 @@
module.exports = 'test-file-stub';

1
__mocks__/styleMock.js Normal file
View File

@@ -0,0 +1 @@
module.exports = {};

20
capacitor.config.json Normal file
View File

@@ -0,0 +1,20 @@
{
"appId": "odax.openware.work",
"appName": "Fibitex",
"bundledWebRuntime": false,
"npmClient": "yarn",
"webDir": "build",
"plugins": {
"SplashScreen": {
"launchShowDuration": 0
}
},
"ios": {
"contentInset": "always"
},
"linuxAndroidStudioPath": "/snap/bin/android-studio",
"cordova": {},
"server": {
"hostname": "odax.openware.work"
}
}

55
config-overrides.js Normal file
View File

@@ -0,0 +1,55 @@
const JavaScriptObfuscator = require('webpack-obfuscator');
const webpack = require('webpack');
const CompressionPlugin = require('compression-webpack-plugin');
module.exports = function override(config, env) {
if (!config.plugins) {
config.plugins = [];
}
// CRA 3 babel/TS 3.8 cannot type-check axios 0.32 bundled .d.ts (needs TS 4.1+).
// Runtime bundle is fine; skip fork-ts-checker during production build.
config.plugins = config.plugins.filter(
plugin => !(plugin && plugin.constructor && plugin.constructor.name === 'ForkTsCheckerWebpackPlugin'),
);
config.plugins.push(new webpack.DefinePlugin({ 'process.env.BUILD_EXPIRE': JSON.stringify(process.env.BUILD_EXPIRE) }));
const version = process.env.REACT_APP_GIT_SHA || 'snapshot';
const commonJSFilename = `commons.${version}.js`;
if (process.env.NODE_ENV === 'production') {
config.optimization = {
splitChunks: {
cacheGroups: {
commons: {
chunks: "initial",
minChunks: 1,
name: "commons",
filename: commonJSFilename,
enforce: true
}
}
}
}
if (`${process.env.BUILD_DOMAIN}` != "") {
const domains = process.env.BUILD_DOMAIN.split(',');
config.plugins.push(
new JavaScriptObfuscator({ rotateUnicodeArray: true, domainLock: domains }, [commonJSFilename])
);
}
config.plugins.push(
new CompressionPlugin({
filename: "[path].gz[query]",
algorithm: "gzip",
test: /\.js$|\.css$|\.html$/,
threshold: 10240,
minRatio: 0.8
})
);
}
return config;
};

9
cypress.json Normal file
View File

@@ -0,0 +1,9 @@
{
"baseUrl": "http://www.app.local",
"fixturesFolder": "spec/fixtures",
"integrationFolder": "spec/integration",
"pluginsFile": "spec/plugins/index.js",
"supportFile": "spec/support/index.js",
"screenshotsFolder": "cypress/screenshots",
"videosFolder": "cypress/videos"
}

View File

@@ -0,0 +1,112 @@
## How to change logo + favicon and title
From this tutorial you will learn how to customize [frontend application](https://github.com/openware/baseapp) for [OpenDAX](https://github.com/openware/opendax), just if you want to make it more personalized.
**Reminder:**
* Here is [previous customization tutorial](https://medium.com/openware/change-baseapp-logo-and-deploy-in-opendax-8506c865ee99) where you can find how to update logo for Baseapp version 2.4.
In newer 2.5 and 2.6 versions exchange logo is represented as SVG element inside React Function Component instead of simple png image from 2.4 version.
The roadmap is pretty short:
* clone [Baseapp](https://github.com/openware/baseapp)
* change the logo and favicon
* edit page title
Should be easy as always. Lets start.
### 1. Clone Baseapp
```bash
cd /home/app
git clone https://github.com/openware/baseapp.git
```
### 2. Change the logo and favicon
So to start with, you can download some [random SVG image](https://www.flaticon.com/svg/static/icons/svg/2933/2933116.svg) and [favicon in ICO format](https://icon-icons.com/downloadimage.php\?id\=51091\&root\=516/ICO/512/\&file\=coin_money_icon-icons.com_51091.ico).
To change the logo follow next steps:
```bash
#this is the folder where all the default logos and images are
cd /home/app/baseapp/src/assets/images
# backup the default one, just in case we do something wrong
cp LogoIcon.tsx LogoIcon.tsx.bak
# download the new SVG logo
curl https://www.flaticon.com/svg/static/icons/svg/2933/2933116.svg -o logo.svg
# open new logo.svg via vim first and copy whole <svg>
vim logo.svg
# open LogoIcon.tsx, delete everything inside LogoIcon const and paste <svg> from logo.svg
vim LogoIcon.tsx
```
```javascript
export const LogoIcon: React.FC<LogoIconProps> = (props: LogoIconProps) => (
<svg width="118" height="20" viewBox="0 0 118 20" fill="none" className={props.className}> // replace
<path ... fill="var(--primary-text-color)"/> // replace
<path ... fill="var(--primary-text-color)"/> // replace
<path ... fill="var(--primary-text-color)"/> // replace
<path ... fill="var(--primary-text-color)"/> // replace
<path ... fill="var(--icons)"/> // replace
</svg> // replace
);
```
Last step - add className={props.className} to the opening <svg> tag. It should look like this
```html
<svg className={props.className} ...other_attributes>
```
**Pay attention** that most of the `<svg>` images have `width` and `height` attributes which are already preseted so, probably, you will have to change them.
Keep the ratio between width and height for downloaded image, but dont use height bigger than 60px (it will overflow the Header).
So in the end my opening SVG tag inside the **LogoIcon.tsx** looks like that:
```html
<svg className={props.className} width=”60" height=”60" viewBox=”0 0 512 512">
```
Now lets replace favicon.ico:
```bash
# this is the folder where React stores favicon.ico, index.htm and manifest.json
cd /home/app/baseapp/public
# backup the default favicon
cp favicon.ico favicon.ico.bak
# download the new one
curl https://icon-icons.com/downloadimage.php\?id\=51091\&root\=516/ICO/512/\&file\=coin_money_icon-icons.com_51091.ico -o favicon.ico
```
### 3. Edit the page title
To edit title of the webpage we have to change it in two files:
```bash
# open index.html and edit 'Cryptobase' name between <title> tag
cd /home/app/baseapp/public
vim index.html
<!DOCTYPE html>
<html lang="en">
<head>
...
<title>Cryptobase</title> // change name here
</head>
# this is the folder where React application constants stored
cd /home/app/baseapp/src/constants
# open index.ts file and edit PG_TITLE_PREFIX constant
vim index.ts
export const PG_TITLE_PREFIX = 'Cryptobase'; // change name here
```
And thats it, now you have your frontend with your own logo, favicon and title.

18
docs/releases/2.1.0.md Normal file
View File

@@ -0,0 +1,18 @@
# BaseApp frontend v2.1.0 (May 6, 2019)
#### Overview
BaseApp frontend fully compatible with Barong v2.1.0 and Peatio v2.1.0.
## New features comparing with v2.0:
- Improved trading page:
- New resizable order book component;
- New market selector with ability to filter by quote currency and sort by different parameters (volume, percent change, name);
- New create order form (estimated market order price and spent balance, ability to select percentage of your balance);
- improved components layout.
- Added estimated balance in one currency to wallet page;
- Mobile responsiveness;
- Ability to display users with pending documents for admin;
- General UI fixes, platform stabilization and small improvments.

12
docs/releases/2.2.0.md Normal file
View File

@@ -0,0 +1,12 @@
#### Overview
BaseApp frontend v2.2.0 fully compatible with Barong v2.2.20 and Peatio v2.2.19.
## New features comparing with v2.1.0:
- Ability to switch between dark and light themes;
- Added user's trade on recent trades component;
- Improved sorting on market selector component;
- List API keys immediately without providing 2FA code;
- Cancelling orders by event from WS;
- General UI fixes, platform stabilization and small improvements.

23
docs/roadmap.md Normal file
View File

@@ -0,0 +1,23 @@
# Baseapp
## v2.4
* Integration of bootstrap and refactoring minor style with it
* Remove depedancy to openware/components and merge them
* Support for CSRF (breaking change)
* Password strength indicator
* Integration of a Base Landing page
* Integration of an API documentation for traders and bots
* Finex integration
## v2.5
* New wallet page mobile responsive
* React upgrade
* Unify configuration management from barong/peatio config api
* Stop Loss order form
* Rework login redux flow
## v3.0
Not defined

3
images.d.ts vendored Normal file
View File

@@ -0,0 +1,3 @@
declare module '*.svg';
declare module '*.png';
declare module '*.jpg';

7
ionic.config.json Normal file
View File

@@ -0,0 +1,7 @@
{
"name": "Fibitex",
"integrations": {
"capacitor": {}
},
"type": "react"
}

38
jest.config.js Normal file
View File

@@ -0,0 +1,38 @@
module.exports = {
'roots': [
'<rootDir>'
],
'transform': {
'^.+\\.(tsx|ts)$': 'ts-jest',
'^.+\\.(jsx|js)$': 'babel-jest',
'^.+\\.svg$': '<rootDir>/svgTransform.js',
},
'testRegex': '(/__tests__/.*|(\\.|/)(test|spec))\\.(tsx|jsx)?$',
'moduleFileExtensions': [
'ts',
'tsx',
'js',
'jsx',
'json',
'node',
'css',
'scss',
],
'snapshotSerializers': ['enzyme-to-json/serializer'],
'transformIgnorePatterns': [
"<rootDir>/node_modules/(?!lodash-es)"
],
'moduleNameMapper': {
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
'<rootDir>/__mocks__/fileMock.js',
'\\.(css|scss|pcss)$': '<rootDir>/__mocks__/styleMock.js',
},
'testURL': "http://localhost",
'collectCoverageFrom': [
"<rootDir>/src/**/*.{ts,tsx,js,jsx}",
],
"coveragePathIgnorePatterns": [
"<rootDir>/node_modules/",
"<rootDir>/src/charting_library/**",
]
};

View File

@@ -0,0 +1,10 @@
HTTP/2 200
Content-Type: application/json; charset=utf-8
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
Access-Control-Max-Age: 3600
Access-Control-Allow-Credentials: true
{
"settings": "{\"theme_id\": \"1\",\"theme_colors\":[{\"key\":\"--rgb-main-background-color\",\"value\":\"30, 30, 30\"},{\"key\":\"--rgb-body-background-color\",\"value\":\"30, 30, 30\"},{\"key\":\"--rgb-header-background-color\",\"value\":\"30, 30, 30\"},{\"key\":\"--rgb-subheader-background-color\",\"value\":\"30, 30, 30\"},{\"key\":\"--rgb-dropdown-background-color\",\"value\":\"125, 19, 23\"},{\"key\":\"--rgb-icons\",\"value\":\"115, 127, 146\"},{\"key\":\"--rgb-primary-cta-color\",\"value\":\"214, 32, 39\"},{\"key\":\"--rgb-contrast-cta-color\",\"value\":\"214, 32, 39\"},{\"key\":\"--rgb-secondary-contrast-cta-color\",\"value\":\"115, 127, 146\"},{\"key\":\"--rgb-cta-layer-color\",\"value\":\"30, 30, 30\"},{\"key\":\"--rgb-system-green\",\"value\":\"84, 180, 137\"},{\"key\":\"--rgb-system-red\",\"value\":\"232, 94, 89\"},{\"key\":\"--rgb-system-yellow\",\"value\":\"232, 175, 89\"},{\"key\":\"--rgb-asks\",\"value\":\"232, 94, 89\"},{\"key\":\"--rgb-bids\",\"value\":\"84, 180, 137\"},{\"key\":\"--rgb-primary-text-color\",\"value\":\"255, 255, 255\"},{\"key\":\"--rgb-text-contrast-color\",\"value\":\"23, 28, 41\"},{\"key\":\"--rgb-input-background-color\",\"value\":\"30, 40, 65\"},{\"key\":\"--rgb-divider-color\",\"value\":\"214, 32, 39\"},{\"key\":\"--rgb-shadow-color\",\"value\":\"214, 32, 39\"},{\"key\":\"--rgb-landing-background-color\",\"value\":\"251, 251, 251\"},{\"key\":\"--rgb-strength-meter-very-strong\",\"value\":\"108, 239, 239\"}]}"
}

View File

@@ -0,0 +1,4 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization

View File

@@ -0,0 +1,8 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"settings": "{\"theme_id\": \"1\",\"theme_colors\":[{\"key\":\"--rgb-main-background-color\",\"value\":\"30, 30, 30\"},{\"key\":\"--rgb-body-background-color\",\"value\":\"30, 30, 30\"},{\"key\":\"--rgb-header-background-color\",\"value\":\"30, 30, 30\"},{\"key\":\"--rgb-subheader-background-color\",\"value\":\"30, 30, 30\"},{\"key\":\"--rgb-dropdown-background-color\",\"value\":\"125, 19, 23\"},{\"key\":\"--rgb-icons\",\"value\":\"115, 127, 146\"},{\"key\":\"--rgb-primary-cta-color\",\"value\":\"214, 32, 39\"},{\"key\":\"--rgb-contrast-cta-color\",\"value\":\"214, 32, 39\"},{\"key\":\"--rgb-secondary-contrast-cta-color\",\"value\":\"115, 127, 146\"},{\"key\":\"--rgb-cta-layer-color\",\"value\":\"30, 30, 30\"},{\"key\":\"--rgb-system-green\",\"value\":\"84, 180, 137\"},{\"key\":\"--rgb-system-red\",\"value\":\"232, 94, 89\"},{\"key\":\"--rgb-system-yellow\",\"value\":\"232, 175, 89\"},{\"key\":\"--rgb-asks\",\"value\":\"232, 94, 89\"},{\"key\":\"--rgb-bids\",\"value\":\"84, 180, 137\"},{\"key\":\"--rgb-primary-text-color\",\"value\":\"255, 255, 255\"},{\"key\":\"--rgb-text-contrast-color\",\"value\":\"23, 28, 41\"},{\"key\":\"--rgb-input-background-color\",\"value\":\"30, 40, 65\"},{\"key\":\"--rgb-divider-color\",\"value\":\"214, 32, 39\"},{\"key\":\"--rgb-shadow-color\",\"value\":\"214, 32, 39\"},{\"key\":\"--rgb-landing-background-color\",\"value\":\"251, 251, 251\"},{\"key\":\"--rgb-strength-meter-very-strong\",\"value\":\"108, 239, 239\"}]}"
}

View File

@@ -0,0 +1,12 @@
HTTP/2 200
Content-Type: application/json; charset=utf-8
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"session_expire_time": 5000,
"captcha_type": "none",
"captcha_id": "6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI",
"password_min_entropy": 14
}

View File

@@ -0,0 +1,9 @@
HTTP/2 200
Content-Type: application/json; charset=utf-8
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"ping": "pong"
}

View File

@@ -0,0 +1,5 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Headers: *

View File

@@ -0,0 +1,6 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization

View File

@@ -0,0 +1,8 @@
HTTP/2 400
content-type: application/json
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{"error":"Email is missing, Password is missing, otp_code is missing, recaptcha response is missing"}

View File

@@ -0,0 +1,14 @@
HTTP/2 200
Content-Type: application/json; charset=utf-8
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"email": "accountant@peatio.tech",
"level": 3,
"otp": false,
"role": "accountant",
"state": "active",
"uid": "ID787E387912"
}

View File

@@ -0,0 +1,15 @@
HTTP/2 200
Content-Type: application/json; charset=utf-8
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"username": "Turbo3000",
"email": "admin@barong.io",
"level": 3,
"otp": false,
"role": "admin",
"state": "active",
"uid": "ID787E383938"
}

View File

@@ -0,0 +1,14 @@
HTTP/2 200
Content-Type: application/json; charset=utf-8
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"email": "compliance@peatio.tech",
"level": 3,
"otp": false,
"role": "compliance",
"state": "active",
"uid": "ID787E383912"
}

View File

@@ -0,0 +1,7 @@
HTTP/2 403
Content-Type: application/json; charset=utf-8
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{"error":"The account has enabled 2FA but OTP code is missing"}

View File

@@ -0,0 +1,15 @@
HTTP/2 200
Content-Type: application/json; charset=utf-8
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"username": "Turbo3000",
"email": "john@barong.io",
"level": 3,
"otp": true,
"role": "member",
"state": "active",
"uid": "ID787E383938"
}

View File

@@ -0,0 +1,14 @@
HTTP/2 200
Content-Type: application/json; charset=utf-8
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"email": "superadmin@peatio.tech",
"level": 3,
"otp": false,
"role": "superadmin",
"state": "active",
"uid": "ID787E383012"
}

View File

@@ -0,0 +1,14 @@
HTTP/2 200
Content-Type: application/json; charset=utf-8
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"email": "support@peatio.tech",
"level": 3,
"otp": false,
"role": "support",
"state": "active",
"uid": "ID787E383912"
}

View File

@@ -0,0 +1,14 @@
HTTP/2 200
Content-Type: application/json; charset=utf-8
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"email": "technical@peatio.tech",
"level": 3,
"otp": false,
"role": "technical",
"state": "active",
"uid": "ID787E383912"
}

View File

@@ -0,0 +1,14 @@
HTTP/2 200
Content-Type: application/json; charset=utf-8
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"email": "toweradmin@peatio.tech",
"level": 3,
"otp": false,
"role": "admin",
"state": "active",
"uid": "ID787E383912"
}

View File

@@ -0,0 +1,15 @@
HTTP/2 200
Content-Type: application/json; charset=utf-8
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"username": "Turbo3000",
"email": "user1@peatio.tech",
"level": 1,
"otp": false,
"role": "member",
"state": "active",
"uid": "ID787E383938"
}

View File

@@ -0,0 +1,15 @@
HTTP/2 200
Content-Type: application/json; charset=utf-8
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"username": "Turbo3000",
"email": "user2@peatio.tech",
"level": 2,
"otp": false,
"role": "member",
"state": "active",
"uid": "ID787E383938"
}

View File

@@ -0,0 +1,8 @@
HTTP/2 401
Content-Type: application/json; charset=utf-8
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{"error":"Invalid Email or Password"}

View File

@@ -0,0 +1,82 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"email":"admin@barong.io",
"uid":"ID489F525B1D",
"role":"admin",
"level": 1,
"otp":true,
"state":"active",
"referral_uid":null,
"data":"{\"language\":\"en\"}",
"created_at":"2019-10-30T11:15:07Z",
"updated_at":"2020-01-13T11:59:31Z",
"labels":[
{"key":"email","value":"verified","scope":"private","created_at":"2019-10-30T11:15:07Z","updated_at":"2019-10-30T11:15:07Z"},
{"key":"phone","value":"","scope":"private","created_at":"2019-12-24T12:05:26Z","updated_at":"2019-12-24T12:05:26Z"},
{"key":"profile","value":"","scope":"private","created_at":"2020-01-15T19:33:17Z","updated_at":"2020-01-15T19:33:17Z"},
{"key":"document","value":"pending","scope":"private","created_at":"2020-01-15T19:34:04Z","updated_at":"2020-01-15T19:34:04Z"}
],
"phones":[
{"country":"UA","number":"380504403893","validated_at":"2019-12-24T12:05:26.000Z"}
],
"data_storages":[],
"csrf_token": "wddwew33r",
"profiles": [
{
"address": null,
"city": null,
"country": null,
"dob": "1999-05-21",
"first_name": "Louisa",
"last_name": "Break",
"postcode": null,
"state": "verified",
"updated_at":"2019-01-10T17:06:37Z",
"created_at":"2019-01-10T17:06:37Z",
"metadata": "{\"nationality\": \"Ukrainian\"}"
},
{
"address": null,
"city": null,
"country": null,
"dob": "1999-05-21",
"first_name": "Marianna",
"last_name": "The Best",
"postcode": null,
"state": "verified",
"updated_at":"2019-02-10T17:06:37Z",
"created_at":"2019-02-10T17:06:37Z",
"metadata": "{\"nationality\": \"Ukrainian\"}"
},
{
"address": null,
"city": null,
"country": null,
"dob": "1999-05-21",
"first_name": "Rejected",
"last_name": "The Best",
"postcode": null,
"state": "rejected",
"updated_at":"2019-02-10T17:06:37Z",
"created_at":"2019-02-10T17:06:37Z",
"metadata": "{\"nationality\": \"Ukrainian\"}"
},
{
"address": null,
"city": null,
"country": null,
"dob": "1999-05-21",
"first_name": "Antoinette",
"last_name": "Ferguson",
"postcode": null,
"state": "verified",
"updated_at":"2019-03-10T17:06:37Z",
"created_at":"2019-03-10T17:06:37Z",
"metadata": "{\"nationality\": \"Ukrainian\"}"
}
]
}

View File

@@ -0,0 +1,6 @@
HTTP/2 200
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
Access-Control-Max-Age: 3600
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: content-type, x-csrf-token

View File

@@ -0,0 +1,25 @@
HTTP/2 201
Content-Type: application/json; charset=utf-8
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
Access-Control-Max-Age: 3600
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: content-type, x-csrf-token
{
"email":"admin@barong.io",
"uid":"ID489F525B1D",
"role": "member",
"level": 0,
"otp": false,
"state": "pending",
"referral_uid": null,
"csrf_token": "8b281b3032013f1fcf3c",
"data": "{\"language\":\"en\"}",
"created_at": "2021-01-18T15:28:54Z",
"updated_at": "2021-01-18T15:28:54Z",
"labels": [],
"phones": [],
"profiles": [],
"data_storages": []
}

View File

@@ -0,0 +1,6 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization

View File

@@ -0,0 +1,8 @@
HTTP/2 422
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"error": "User doesn't exist or has already been activated"
}

View File

@@ -0,0 +1,6 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
201

View File

@@ -0,0 +1,6 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization

View File

@@ -0,0 +1,6 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
201

View File

@@ -0,0 +1,6 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization

View File

@@ -0,0 +1,6 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
201

View File

@@ -0,0 +1,10 @@
HTTP/2 200
Content-Type: application/json; charset=utf-8
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"gt": "0c4ab8ac2ed12c1c3f4a023dff99cd87",
"challenge": "25e8fe07feed0b02eb88634a7b052be4"
}

View File

@@ -0,0 +1,39 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
[
{
"algorithm": "HS256",
"created_at": "2019-02-14T15:56:57Z",
"kid": "5c3933e8c8f97071",
"scope": [],
"state": "active",
"updated_at": "2019-02-14T15:56:57Z"
},
{
"algorithm": "HS256",
"created_at": "2019-02-14T15:58:06Z",
"kid": "16da7aa20353e449",
"scope": [],
"state": "active",
"updated_at": "2019-02-14T15:58:06Z"
},
{
"algorithm": "HS256",
"created_at": "2019-02-14T15:58:06Z",
"kid": "26da7aa20353e449",
"scope": [],
"state": "active",
"updated_at": "2019-02-14T15:58:06Z"
},
{
"algorithm": "HS256",
"created_at": "2019-02-14T15:58:06Z",
"kid": "36da7aa20353e449",
"scope": [],
"state": "active",
"updated_at": "2019-02-14T15:58:06Z"
}
]

View File

@@ -0,0 +1,15 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
[
{
"algorithm": "HS256",
"created_at": "2019-02-14T15:58:06Z",
"kid": "46da7aa20353e449",
"scope": [],
"state": "active",
"updated_at": "2019-02-14T15:58:06Z"
}
]

View File

@@ -0,0 +1,15 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
[
{
"algorithm": "HS256",
"created_at": "2019-02-14T15:58:06Z",
"kid": "46da7aa20353e449",
"scope": [],
"state": "active",
"updated_at": "2019-02-14T15:58:06Z"
}
]

View File

@@ -0,0 +1,8 @@
HTTP/2 422
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"error": "This code was already used. Wait until the next time period"
}

View File

@@ -0,0 +1,47 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
[
{
"algorithm": "HS256",
"created_at": "2019-02-14T15:56:57Z",
"kid": "5c3933e8c8f97071",
"scope": [],
"state": "active",
"updated_at": "2019-02-14T15:56:57Z"
},
{
"algorithm": "HS256",
"created_at": "2019-02-14T15:58:06Z",
"kid": "16da7aa20353e449",
"scope": [],
"state": "active",
"updated_at": "2019-02-14T15:58:06Z"
},
{
"algorithm": "HS256",
"created_at": "2019-02-14T15:58:06Z",
"kid": "26da7aa20353e449",
"scope": [],
"state": "active",
"updated_at": "2019-02-14T15:58:06Z"
},
{
"algorithm": "HS256",
"created_at": "2019-02-14T15:58:06Z",
"kid": "36da7aa20353e449",
"scope": [],
"state": "active",
"updated_at": "2019-02-14T15:58:06Z"
},
{
"algorithm": "HS256",
"created_at": "2019-02-14T15:58:06Z",
"kid": "46da7aa20353e449",
"scope": [],
"state": "active",
"updated_at": "2019-02-14T15:58:06Z"
}
]

View File

@@ -0,0 +1,4 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization

View File

@@ -0,0 +1,9 @@
HTTP/2 422
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Headers: *
{
"error": "This code was already used. Wait until the next time period"
}

View File

@@ -0,0 +1,15 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Headers: *
{
"algorithm": "HS256",
"created_at": "2019-02-14T15:56:57Z",
"kid": "5c3933e8c8f97071",
"scope": [],
"secret": "27757139646497bf91389d9e70cf973c",
"state": "active",
"updated_at": "2019-02-14T15:56:57Z"
}

View File

@@ -0,0 +1,9 @@
HTTP/2 422
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Headers: *
{
"error": "This code was already used. Wait until the next time period"
}

View File

@@ -0,0 +1,5 @@
HTTP/2 204
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Headers: *

View File

@@ -0,0 +1,5 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Headers: *

View File

@@ -0,0 +1,9 @@
HTTP/2 422
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Headers: *
{
"error": "This code was already used. Wait until the next time period"
}

View File

@@ -0,0 +1,14 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Headers: *
{
"algorithm": "HS256",
"created_at": "2019-02-14T15:56:57Z",
"kid": "5c3933e8c8f97071",
"scope": [],
"state": "disabled",
"updated_at": "2019-02-14T15:56:57Z"
}

View File

@@ -0,0 +1,7 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Headers: *
201

View File

@@ -0,0 +1,28 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
[
{
"key":"email",
"value":"verified",
"scope":"private",
"created_at":"2019-02-12T15:00:40Z",
"updated_at":"2019-02-12T15:00:40Z"
},
{
"key":"profile",
"value":"verified",
"scope":"private",
"created_at":"2019-02-25T12:41:14Z",
"updated_at":"2019-02-25T12:41:14Z"
},
{
"key":"access_phone",
"value":"verified",
"scope":"private",
"created_at":"2019-02-25T12:47:07Z",
"updated_at":"2019-02-25T12:47:07Z"
}
]

View File

@@ -0,0 +1,57 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
[
{
"key":"email",
"value":"verified",
"scope":"private",
"created_at":"2019-02-12T15:00:40Z",
"updated_at":"2019-02-12T15:00:40Z"
},
{
"key":"profile",
"value":"verified",
"scope":"private",
"created_at":"2019-02-25T12:41:14Z",
"updated_at":"2019-02-25T12:41:14Z"
},
{
"key":"access_phone",
"value":"verified",
"scope":"private",
"created_at":"2019-02-25T12:47:07Z",
"updated_at":"2019-02-25T12:47:07Z"
},
{
"key":"card",
"value":"verified",
"scope":"private",
"created_at":"2019-02-25T12:47:07Z",
"updated_at":"2019-02-25T12:47:07Z"
},
{
"key":"iban",
"value":"verified",
"scope":"private",
"created_at":"2019-02-25T12:47:07Z",
"updated_at":"2019-02-25T12:47:07Z"
},
{
"key":"poa",
"value":"verified",
"scope":"private",
"created_at":"2019-02-25T12:47:07Z",
"updated_at":"2019-02-25T12:47:07Z"
},
{
"key":"telephone",
"value":"verified",
"scope":"private",
"created_at":"2019-02-25T12:47:07Z",
"updated_at":"2019-02-25T12:47:07Z"
}
]

View File

@@ -0,0 +1,49 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
[
{
"key":"email",
"value":"verified",
"scope":"private",
"created_at":"2019-02-12T15:00:40Z",
"updated_at":"2019-02-12T15:00:40Z"
},
{
"key":"profile",
"value":"verified",
"scope":"private",
"created_at":"2019-02-25T12:41:14Z",
"updated_at":"2019-02-25T12:41:14Z"
},
{
"key":"access_phone",
"value":"verified",
"scope":"private",
"created_at":"2019-02-25T12:47:07Z",
"updated_at":"2019-02-25T12:47:07Z"
},
{
"key":"card",
"value":"verified",
"scope":"private",
"created_at":"2019-02-25T12:47:07Z",
"updated_at":"2019-02-25T12:47:07Z"
},
{
"key":"iban",
"value":"verified",
"scope":"private",
"created_at":"2019-02-25T12:47:07Z",
"updated_at":"2019-02-25T12:47:07Z"
},
{
"key":"poa",
"value":"verified",
"scope":"private",
"created_at":"2019-02-25T12:47:07Z",
"updated_at":"2019-02-25T12:47:07Z"
}
]

View File

@@ -0,0 +1,4 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization

View File

@@ -0,0 +1,9 @@
HTTP/2 422
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Headers: *
{
"error": "OTP code is invalid"
}

View File

@@ -0,0 +1,7 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Headers: *
200

View File

@@ -0,0 +1,4 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization

View File

@@ -0,0 +1,7 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Headers: *
{"auth":null,"data":{"barcode":"iVBORw0KGgoAAAANSUhEUgAAASwAAAEsEAAAAAAMhg3qAAAH7UlEQVR4nOzdy27jOhaG0U6j3v+VqwepgQCbMRnyk5PGWpMDBLKkOD94aoOX/efv3//Acf999wvw/0mwSPz5/M/Hx/lbn/qf7PXdrvcc/fyU0Xey86yZe878XqvvNvMdnvJ5fyMWCcEiIVgkBIuEYJH48/ijouo5dZ+dCnHnmuvPV9/hVHU5893ufP9n/+5GLBKCRUKwSAgWCcEi8aQqvJqpMmaqidVKaqfaWp1D3KnmdubgVu8/umb1/jP2/+5GLBKCRUKwSAgWCcEi8aIqfJedamtnheSdFeJMZTczXzlzz/u3zBixSAgWCcEiIVgkBIvEm6vCnYrv6s49gMVevBl3/u77jFgkBIuEYJEQLBKCReJFVVhXFqf2A56qLlevKfY5nlr5ufO32/+7G7FICBYJwSIhWCQEi8STqvBdc2Gjd1hdpXnq5zPvs+onv//Zv7sRi4RgkRAsEoJFQrBI/KsKf2Orpp0Vnqu/750rUe/sxNH93Y1YJASLhGCRECwSgkXi47MuKFYzFp0XZu5/alXnqp1zQXe+q1OdOFY5g5Q3ECwSgkVCsEgIFomPr/9tv1OpnaryZt6n2Ff4rvucOn91Rvd9GrFICBYJwSIhWCQEi8S/FaQ7nReuTlUZO3ZWXZ7axzfzbqPnFu9z52c/f27EIiFYJASLhGCRECwST06bqef7Vq8vqtHVs0xPnX16Vc9F7nx29LvPfz9GLBKCRUKwSAgWCcEi8WQFaTHfNLrPjlN761afNbKzd++ec0Efn7VaUc5fb8QiIVgkBIuEYJEQLBIvTpsZfizunH6qWplx54rQU/c8tUp29Nz9uVcjFgnBIiFYJASLhGCReFIVjty/N23enVXkSNFncOZZV6e+w/13M2KRECwSgkVCsEgIFokn/Qrrk09m7rlz/c6K1lN79Hb2J47uufPcke/tGZy5xohFQrBICBYJwSIhWCSenEG6c2JM0StwpnLZMfPOOxXxqfnK1cp91dk5XCMWCcEiIVgkBIuEYJF4cdrMqfm71et3VoTWKyfrU2XOztl97z2vzBXygwgWCcEiIVgkBIvEQlW4U6EUFdOMYs5upN4/eGfvxf2/uxGLhGCRECwSgkVCsEgsdKaYUZ+NObr+1Ek4M97VaaKumnee+3i9EYuEYJEQLBKCRUKwSBzoYl/3Maw76d85f1ecuXpqFe7MNfPflRGLhGCRECwSgkVCsEg8OW3maqY6ONWlYsadHStOnQtaK85lnfH138KIRUKwSAgWCcEiIVgknswV7tipmO5cQVpXdjsrZle/h2I/4/5cpBGLhGCRECwSgkVCsEi8WEF6VffyW73nzLvdeZ7qT+vgP3Jqj6czSHkDwSIhWCQEi4RgkXhSFe6s/Lyz7+GOYu6sPhVnxs85o9WIRUKwSAgWCcEiIVgkXqwgPXVizCmn7l/Ph44++645zZGdk2e+ZsQiIVgkBIuEYJEQLBLf7GL/ru4VI3f2JRx5VweNn/B7PV5vxCIhWCQEi4RgkRAsEgudKVZXTl7N7L871dXiVDeNmXcbXTN61s47zDhVXe7PyRqxSAgWCcEiIVgkBIvEk84UO3NeI8U82k/Yi3fqPu/67NXZVbVGLBKCRUKwSAgWCcEi8c19hfWZmXfurTtV1e5Upmfn6R7t9J38XvVtxCIhWCQEi4RgkRAsEv+qwpn5uJ0TV652egjOONX94dSc6WpVVe8rPHW9fYW8gWCRECwSgkVCsEi8WEG60wtvpzr7yas0d/ZXjhTV69WplbrzjFgkBIuEYJEQLBKCReLFXOHVzlzhTkeGe05HebzP6orZU2eK7swJnnrWqsff3YhFQrBICBYJwSIhWCT+daZYXf1YryYtTpKpO+MXPQ1PVesz73O22jVikRAsEoJFQrBICBaJhc4UV3eeGLNTMZ3aA1icj7o6f3dqP6bOFPxigkVCsEgIFgnBIvHNM0jvrJ5G77P6njP3qavOkXoOcWY17Nm5SCMWCcEiIVgkBIuEYJH4+N6/+U91c9i5fvWzxUk4dbX7G1fVWkFKSLBICBYJwSIhWCSe7Cs8VSWNrhmpq57iWTPvcPWuarQ4p/RrRiwSgkVCsEgIFgnBIvFkrrA4VWbkVAV3ag/juzpxjNTzjzPXz7zb432MWCQEi4RgkRAsEoJF4kVVOHKqgrjTqZ6JM/ecuX70rOJ81xn2FfILCBYJwSIhWCQEi8STLvYjpzovzHx2Z57r1NzczvWr54UW+xNPVeLfe2cjFgnBIiFYJASLhGCReNLFfke9J2616rlzVero56fmE0fXnOpMcbXfTcOIRUKwSAgWCcEiIVgkFuYKV42qudE1xb68ugPFzrNG14wU84bdylUjFgnBIiFYJASLhGCReNHFftWp6mP1fXbm5urVs6NrduYE6472q9c8MmKRECwSgkVCsEgIFokXXeyLU01mFHsDVyu7emXmzhziTs/HU3snv36uEYuEYJEQLBKCRUKwSLyoCms7Kzln1PvvroquFqfOLC16QX79PkYsEoJFQrBICBYJwSLx5qqw7sE386xT99yx8w5nO0o8fnZmftNcITcRLBKCRUKwSAgWiRdVYVH1rM6Lrd5/pJjLKz67es87nztirpCbCBYJwSIhWCQEi8STqrA4j3Rnf1zR1WLHateMnXnAnetnPlucLPTJiEVCsEgIFgnBIiFYJD6Ks2LAiEVCsEj8LwAA//+S1YC0dw+XhgAAAABJRU5ErkJggg==","url":"otpauth://totp/Microkube:john@barong.io?algorithm=SHA1\u0026digits=6\u0026issuer=Microkube\u0026period=30\u0026secret=JDP7L27SU7SUBL4UU2NRYE4HQDGB5AN4"},"lease_duration":0,"lease_id":"","renewable":false,"warnings":null,"wrap_info":null}

View File

@@ -0,0 +1,4 @@
HTTP/2 200
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
Access-Control-Allow-Headers: *

View File

@@ -0,0 +1,7 @@
HTTP/2 400
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Headers: *
{"errors":["resource.phone.number_exist"]}

View File

@@ -0,0 +1,7 @@
HTTP/2 400
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Headers: *
{"errors":["resource.phone.exists"]}

View File

@@ -0,0 +1,4 @@
HTTP/2 200
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
Access-Control-Allow-Headers: *

View File

@@ -0,0 +1,7 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Headers: *
{"message":"Code was sent successfully via sms"}

View File

@@ -0,0 +1,4 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization

View File

@@ -0,0 +1,7 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Headers: *
201

View File

@@ -0,0 +1,4 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization

View File

@@ -0,0 +1,7 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Headers: *
201

View File

@@ -0,0 +1,260 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Expose-Headers: total
Total: 28
[{
"id": 19,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:08:36.000Z"
}, {
"id": 20,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "logout",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:09:30.000Z"
}, {
"id": 21,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "logout",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:10:10.000Z"
}, {
"id": 22,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:10:14.000Z"
}, {
"id": 23,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:12:16.000Z"
}, {
"id": 24,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:15:20.000Z"
}, {
"id": 25,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:53.000Z"
}, {
"id": 26,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:57.000Z"
}, {
"id": 27,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:58.000Z"
}, {
"id": 28,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:33.000Z"
}, {
"id": 29,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:56.000Z"
}, {
"id": 30,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:41:55.000Z"
}, {
"id": 31,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "logout",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:43:56.000Z"
}, {
"id": 33,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:53:01.000Z"
}, {
"id": 35,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36",
"topic": "otp",
"action": "request QR code for 2FA",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:54:46.000Z"
},
{
"id": 19,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:08:36.000Z"
}, {
"id": 25,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:53.000Z"
}, {
"id": 26,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:57.000Z"
}, {
"id": 27,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:58.000Z"
}, {
"id": 28,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:33.000Z"
}, {
"id": 20,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "logout",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:09:30.000Z"
}, {
"id": 21,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "logout",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:10:10.000Z"
}, {
"id": 27,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:58.000Z"
}, {
"id": 28,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:33.000Z"
}, {
"id": 29,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:56.000Z"
}]

View File

@@ -0,0 +1,38 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Expose-Headers: total
Total: 28
[{
"id": 27,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:58.000Z"
}, {
"id": 28,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:33.000Z"
}, {
"id": 29,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:56.000Z"
}]

View File

@@ -0,0 +1,109 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Expose-Headers: total
Total: 28
[{
"id": 19,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:08:36.000Z"
}, {
"id": 20,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "logout",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:09:30.000Z"
}, {
"id": 21,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "logout",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:10:10.000Z"
}, {
"id": 22,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:10:14.000Z"
}, {
"id": 23,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:12:16.000Z"
}, {
"id": 24,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:15:20.000Z"
}, {
"id": 25,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:53.000Z"
}, {
"id": 26,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:57.000Z"
}, {
"id": 27,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:58.000Z"
}, {
"id": 28,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:33.000Z"
}]

View File

@@ -0,0 +1,110 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Expose-Headers: total
Total: 28
[{
"id": 29,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:56.000Z"
}, {
"id": 30,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:41:55.000Z"
}, {
"id": 31,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "logout",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:43:56.000Z"
}, {
"id": 33,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:53:01.000Z"
}, {
"id": 35,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36",
"topic": "otp",
"action": "request QR code for 2FA",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:54:46.000Z"
},
{
"id": 19,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:08:36.000Z"
}, {
"id": 25,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:53.000Z"
}, {
"id": 26,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:57.000Z"
}, {
"id": 27,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:58.000Z"
}, {
"id": 28,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:33.000Z"
}]

View File

@@ -0,0 +1,90 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Expose-Headers: total
Total: 28
[{
"id": 20,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "logout",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:09:30.000Z"
}, {
"id": 21,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "logout",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:10:10.000Z"
}, {
"id": 27,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:58.000Z"
}, {
"id": 28,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:33.000Z"
}, {
"id": 29,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:56.000Z"
},
{
"id": 27,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:58.000Z"
}, {
"id": 28,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:33.000Z"
}, {
"id": 29,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:56.000Z"
}]

View File

@@ -0,0 +1,261 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Expose-Headers: total
Total: 28
[{
"id": 25,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:08:36.000Z"
}, {
"id": 24,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "logout",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:09:30.000Z"
}, {
"id": 23,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "logout",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:10:10.000Z"
}, {
"id": 22,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:10:14.000Z"
}, {
"id": 21,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:15:20.000Z"
}, {
"id": 20,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:53.000Z"
}, {
"id": 1,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:57.000Z"
}, {
"id": 2,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:58.000Z"
}, {
"id": 3,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:33.000Z"
}, {
"id": 4,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "failed",
"data": null,
"created_at": "2019-01-22T15:18:56.000Z"
}, {
"id": 5,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:41:55.000Z"
}, {
"id": 6,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "logout",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:43:56.000Z"
}, {
"id": 7,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:53:01.000Z"
}, {
"id": 8,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36",
"topic": "otp",
"action": "request QR code for 2FA",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:54:46.000Z"
},
{
"id": 9,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:08:36.000Z"
}, {
"id": 10,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:53.000Z"
}, {
"id": 11,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:57.000Z"
}, {
"id": 12,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:58.000Z"
}, {
"id": 13,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:33.000Z"
}, {
"id": 14,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "logout",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:09:30.000Z"
}, {
"id": 15,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "logout",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:10:10.000Z"
}, {
"id": 16,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:58.000Z"
}, {
"id": 17,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:33.000Z"
},
{
"id": 19,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:33.000Z"
}, {
"id": 18,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:56.000Z"
}]

View File

@@ -0,0 +1,38 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Expose-Headers: total
Total: 28
[{
"id": 27,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:17:58.000Z"
}, {
"id": 28,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:33.000Z"
}, {
"id": 29,
"user_id": 1,
"user_ip": "195.214.197.210",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"topic": "session",
"action": "login",
"result": "succeed",
"data": null,
"created_at": "2019-01-22T15:18:56.000Z"
}]

View File

@@ -0,0 +1,4 @@
HTTP/2 201
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization

View File

@@ -0,0 +1,4 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization

View File

@@ -0,0 +1,65 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"email":"yaser.rezaei@gmail.com",
"uid":"ID9B35B4A318",
"role":"member",
"level":0,
"otp":false,
"state":"active",
"referral_uid":null,
"data":"{\"language\":\"en\"}",
"labels":[
{
"key":"email",
"value":"verified",
"scope":"private",
"created_at":"2021-08-08T04:38:20Z",
"updated_at":"2021-08-08T04:38:20Z"
},
{
"key":"profile",
"value":"verified",
"scope":"private",
"created_at":"2021-08-08T07:00:11Z",
"updated_at":"2021-08-08T07:00:46Z"
},
{
"key":"access_phone",
"value":"verified",
"scope":"private",
"created_at":"2021-08-08T07:01:30Z",
"updated_at":"2021-08-08T07:01:44Z"
}],
"phones":[
{
"country":"IR",
"number":"98******9700",
"validated_at":"2021-08-08T07:01:44.000Z"
}],
"profiles":[
{
"first_name":"یاسر",
"last_name":"ر****",
"national_code":"07937*****",
"dob":"1363-06-**",
"address":null,
"postcode":null,
"city":null,
"country":null,
"state":"verified",
"metadata":null,
"upload":null,
"created_at":"2021-08-08T07:00:10Z",
"updated_at":"2021-08-08T07:00:46Z"
}],
"data_storages":[],
"created_at":"2021-08-08T04:37:58Z",
"updated_at":"2021-08-08T04:38:20Z"
}

View File

@@ -0,0 +1,81 @@
HTTP/2 200
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
{
"username": "Turbo3000",
"email": "john@barong.io",
"level": 2,
"otp": true,
"role": "superadmin",
"state": "active",
"uid": "ID787E383938",
"csrf_token": "31415926535897932384626433832795028841971",
"data":"{\"language\":\"en\"}",
"profiles": [
{
"address": null,
"city": null,
"country": null,
"dob": "1999-05-21",
"first_name": "Louisa",
"last_name": "Break",
"postcode": null,
"state": "verified",
"updated_at":"2019-01-10T17:06:37Z",
"created_at":"2019-01-10T17:06:37Z",
"metadata": "{\"nationality\": \"Ukrainian\"}"
},
{
"address": null,
"city": null,
"country": null,
"dob": "1999-05-21",
"first_name": "Marianna",
"last_name": "The Best",
"postcode": null,
"state": "verified",
"updated_at":"2019-02-10T17:06:37Z",
"created_at":"2019-02-10T17:06:37Z",
"metadata": "{\"nationality\": \"Ukrainian\"}"
},
{
"address": null,
"city": null,
"country": null,
"dob": "1999-05-21",
"first_name": "Rejected",
"last_name": "The Best",
"postcode": null,
"state": "rejected",
"updated_at":"2019-02-10T17:06:37Z",
"created_at":"2019-02-10T17:06:37Z",
"metadata": "{\"nationality\": \"Ukrainian\"}"
},
{
"address": null,
"city": null,
"country": null,
"dob": "1999-05-21",
"first_name": "Antoinette",
"last_name": "Ferguson",
"postcode": null,
"state": "verified",
"updated_at":"2019-03-10T17:06:37Z",
"created_at":"2019-03-10T17:06:37Z",
"metadata": "{\"nationality\": \"Ukrainian\"}"
}
],
"labels": [
{
"key": "phone",
"value": "verify",
"scope": "private",
"created_at": "2019-05-16T14:01:49Z",
"updated_at": "2019-05-16T14:01:49Z"
}
],
"phones": "+380501823918"
}

Some files were not shown because too many files have changed in this diff Show More