Initial commit
This commit is contained in:
6
.babelrc
Normal file
6
.babelrc
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"plugins": [
|
||||
"transform-es2015-modules-commonjs"
|
||||
]
|
||||
}
|
||||
|
||||
3
.dockerignore
Normal file
3
.dockerignore
Normal file
@@ -0,0 +1,3 @@
|
||||
*Dockerfile*
|
||||
*docker-compose*
|
||||
node_modules
|
||||
1
.domains.example
Normal file
1
.domains.example
Normal file
@@ -0,0 +1 @@
|
||||
localhost,.app.local,.openfinex.io,.devkube.com,.openware.work,.opendax.app
|
||||
204
.drone.yml
Normal file
204
.drone.yml
Normal 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
1
.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.sh text eol=lf
|
||||
31
.gitignore
vendored
Normal file
31
.gitignore
vendored
Normal 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/
|
||||
21
.prettierrc
Normal file
21
.prettierrc
Normal 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
15
.stylelintrc.json
Normal 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
45
.yarnclean
Normal 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
35
Dockerfile
Normal 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
20
Dockerfile.deps
Normal 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
141
LICENSE.md
Normal 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
248
README.md
Normal 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>
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
<h3 align="center">
|
||||
<a href="https://www.openware.com/sdk/docs.html#baseapp">Guide</a> <span>|</span>
|
||||
<a href="https://www.openware.com/sdk/api.html">API Docs</a> <span>|</span>
|
||||
<a href="https://www.openware.com/">Consulting</a> <span>|</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
__mocks__/fileMock.js
Normal file
1
__mocks__/fileMock.js
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = 'test-file-stub';
|
||||
1
__mocks__/styleMock.js
Normal file
1
__mocks__/styleMock.js
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = {};
|
||||
20
capacitor.config.json
Normal file
20
capacitor.config.json
Normal 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
55
config-overrides.js
Normal 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
9
cypress.json
Normal 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"
|
||||
}
|
||||
112
docs/basic_customization.html.md
Normal file
112
docs/basic_customization.html.md
Normal 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. Let’s 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 don’t 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 let’s 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 that’s it, now you have your frontend with your own logo, favicon and title.
|
||||
18
docs/releases/2.1.0.md
Normal file
18
docs/releases/2.1.0.md
Normal 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
12
docs/releases/2.2.0.md
Normal 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
23
docs/roadmap.md
Normal 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
3
images.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
declare module '*.svg';
|
||||
declare module '*.png';
|
||||
declare module '*.jpg';
|
||||
7
ionic.config.json
Normal file
7
ionic.config.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "Fibitex",
|
||||
"integrations": {
|
||||
"capacitor": {}
|
||||
},
|
||||
"type": "react"
|
||||
}
|
||||
38
jest.config.js
Normal file
38
jest.config.js
Normal 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/**",
|
||||
]
|
||||
};
|
||||
10
mocks/api/v2/applogic/customization/GET.mock
Normal file
10
mocks/api/v2/applogic/customization/GET.mock
Normal 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\"}]}"
|
||||
}
|
||||
4
mocks/api/v2/applogic/customization/OPTIONS.mock
Normal file
4
mocks/api/v2/applogic/customization/OPTIONS.mock
Normal 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
|
||||
8
mocks/api/v2/applogic/customization/POST.mock
Normal file
8
mocks/api/v2/applogic/customization/POST.mock
Normal 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\"}]}"
|
||||
}
|
||||
12
mocks/api/v2/dalan/identity/configs/GET.mock
Normal file
12
mocks/api/v2/dalan/identity/configs/GET.mock
Normal 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
|
||||
}
|
||||
9
mocks/api/v2/dalan/identity/ping/GET.mock
Normal file
9
mocks/api/v2/dalan/identity/ping/GET.mock
Normal 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"
|
||||
}
|
||||
5
mocks/api/v2/dalan/identity/sessions/DELETE.mock
Normal file
5
mocks/api/v2/dalan/identity/sessions/DELETE.mock
Normal 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: *
|
||||
6
mocks/api/v2/dalan/identity/sessions/OPTIONS.mock
Normal file
6
mocks/api/v2/dalan/identity/sessions/OPTIONS.mock
Normal 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
|
||||
|
||||
|
||||
@@ -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"}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"}
|
||||
82
mocks/api/v2/dalan/identity/sessions/POST.mock
Normal file
82
mocks/api/v2/dalan/identity/sessions/POST.mock
Normal 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\"}"
|
||||
}
|
||||
]
|
||||
}
|
||||
6
mocks/api/v2/dalan/identity/users/OPTIONS.mock
Normal file
6
mocks/api/v2/dalan/identity/users/OPTIONS.mock
Normal 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
|
||||
25
mocks/api/v2/dalan/identity/users/POST.mock
Normal file
25
mocks/api/v2/dalan/identity/users/POST.mock
Normal 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": []
|
||||
}
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
10
mocks/api/v2/dalan/identity/users/register_geetest/GET.mock
Normal file
10
mocks/api/v2/dalan/identity/users/register_geetest/GET.mock
Normal 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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
@@ -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"
|
||||
}
|
||||
47
mocks/api/v2/dalan/resource/api_keys/GET.mock
Normal file
47
mocks/api/v2/dalan/resource/api_keys/GET.mock
Normal 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"
|
||||
}
|
||||
]
|
||||
4
mocks/api/v2/dalan/resource/api_keys/OPTIONS.mock
Normal file
4
mocks/api/v2/dalan/resource/api_keys/OPTIONS.mock
Normal 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
|
||||
@@ -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"
|
||||
}
|
||||
15
mocks/api/v2/dalan/resource/api_keys/POST.mock
Normal file
15
mocks/api/v2/dalan/resource/api_keys/POST.mock
Normal 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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
5
mocks/api/v2/dalan/resource/api_keys/__/DELETE.mock
Normal file
5
mocks/api/v2/dalan/resource/api_keys/__/DELETE.mock
Normal 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: *
|
||||
5
mocks/api/v2/dalan/resource/api_keys/__/OPTIONS.mock
Normal file
5
mocks/api/v2/dalan/resource/api_keys/__/OPTIONS.mock
Normal 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: *
|
||||
@@ -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"
|
||||
}
|
||||
14
mocks/api/v2/dalan/resource/api_keys/__/PATCH.mock
Normal file
14
mocks/api/v2/dalan/resource/api_keys/__/PATCH.mock
Normal 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"
|
||||
}
|
||||
7
mocks/api/v2/dalan/resource/documents/POST.mock
Normal file
7
mocks/api/v2/dalan/resource/documents/POST.mock
Normal 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
|
||||
28
mocks/api/v2/dalan/resource/labels/GET.mock
Normal file
28
mocks/api/v2/dalan/resource/labels/GET.mock
Normal 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"
|
||||
}
|
||||
]
|
||||
57
mocks/api/v2/dalan/resource/labels/GET03.mock
Normal file
57
mocks/api/v2/dalan/resource/labels/GET03.mock
Normal 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"
|
||||
}
|
||||
|
||||
]
|
||||
49
mocks/api/v2/dalan/resource/labels/GET1.mock
Normal file
49
mocks/api/v2/dalan/resource/labels/GET1.mock
Normal 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"
|
||||
}
|
||||
]
|
||||
4
mocks/api/v2/dalan/resource/otp/enable/OPTIONS.mock
Normal file
4
mocks/api/v2/dalan/resource/otp/enable/OPTIONS.mock
Normal 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
|
||||
@@ -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"
|
||||
}
|
||||
7
mocks/api/v2/dalan/resource/otp/enable/POST.mock
Normal file
7
mocks/api/v2/dalan/resource/otp/enable/POST.mock
Normal 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
|
||||
@@ -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
|
||||
@@ -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}
|
||||
4
mocks/api/v2/dalan/resource/phones/OPTIONS.mock
Normal file
4
mocks/api/v2/dalan/resource/phones/OPTIONS.mock
Normal 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: *
|
||||
@@ -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"]}
|
||||
@@ -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"]}
|
||||
@@ -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: *
|
||||
7
mocks/api/v2/dalan/resource/phones/send_code/POST.mock
Normal file
7
mocks/api/v2/dalan/resource/phones/send_code/POST.mock
Normal 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"}
|
||||
4
mocks/api/v2/dalan/resource/phones/verify/OPTIONS.mock
Normal file
4
mocks/api/v2/dalan/resource/phones/verify/OPTIONS.mock
Normal 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
|
||||
7
mocks/api/v2/dalan/resource/phones/verify/POST.mock
Normal file
7
mocks/api/v2/dalan/resource/phones/verify/POST.mock
Normal 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
|
||||
4
mocks/api/v2/dalan/resource/profiles/OPTIONS.mock
Normal file
4
mocks/api/v2/dalan/resource/profiles/OPTIONS.mock
Normal 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
|
||||
7
mocks/api/v2/dalan/resource/profiles/POST.mock
Normal file
7
mocks/api/v2/dalan/resource/profiles/POST.mock
Normal 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
|
||||
@@ -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"
|
||||
}]
|
||||
@@ -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"
|
||||
}]
|
||||
@@ -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"
|
||||
}]
|
||||
@@ -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"
|
||||
}]
|
||||
@@ -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"
|
||||
}]
|
||||
@@ -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"
|
||||
}]
|
||||
@@ -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"
|
||||
}]
|
||||
4
mocks/api/v2/dalan/resource/users/activity/all/GET.mock
Normal file
4
mocks/api/v2/dalan/resource/users/activity/all/GET.mock
Normal 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
|
||||
@@ -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
|
||||
65
mocks/api/v2/dalan/resource/users/me/GET.mock
Normal file
65
mocks/api/v2/dalan/resource/users/me/GET.mock
Normal 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"
|
||||
}
|
||||
81
mocks/api/v2/dalan/resource/users/me/GET1.mock
Normal file
81
mocks/api/v2/dalan/resource/users/me/GET1.mock
Normal 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
Reference in New Issue
Block a user