tachybase_todo/packages/samples/shop-actions
被雨水过滤的空气-Rairn 098140d511
feat(parse-variables): support to parse variables in filter params (#1558)
* fix: add field linkage on setting default datetime

* fix: fix dateonly timezone problem

* fix: improve test

* docs(DatePicker): add demos

* fix(DatePicker): should return the beginning of a second

* feat(DatePicker): support non-UTC

* refactor: rename

* fix(RangePicker): get correct end date

* test(mapDatePicker): add test

* test(mapRangePicker): add test

* feat(Filter): use non-UTC to filter

* feat(FilterBlock): use non-UTC to filter

* feat: add '$dateBetween' operator in datetime

* feat: use RangePicker on toggled to 'dateBetween' operator

* feat: set ranges for RangePicker

* feat: backend support to parse 'dateBetween' operator

* fix: fix build error

* fix: adaptive content width

* feat: support to use var on data scope

* feat: add parse-variables plugin

* feat: support to parse variables

* feat: support only to set system variables

* test: rename

* feat: cover all

* fix: fix build error

* feat(RangePicker): extend more shortcut keys

* feat(parse-variables): support more date var

* feat: support user variables

* feat: disable unmatched options

* fix: use component name to filter option

* fix: fix build error

* feat: remove some operator of id

* chore: remove useless operators

* fix: built in plugin

* refactor: move to core from plugin

* refactor: remove code of plugin

* refactor: remove useless code

* fix: should after acl

* Update server.ts

* fix: compatible with old version

* feat: test cases

* refactor: rename to 'is between'

* refactor: parse filter

* fix: improve code

* feat: test cases

* fix: fix error

* fix: improve parse date

* fix: date variables

* fix: day range

* fix: test error

* fix: typo

* fix: test error

* feat: $user variable

* fix: toDate

* fix: fix the value range of shortcuts

* feat: add quarter and test

* feat: support to use user's association fields to filter

* refactor: use maxDepth

* refactor: remove useless code

* fix: make AssociationSelect.Designer to support variables

* fix: getField

* fix: parse utc

* fix: remove only

* fix: filter by ctx.db.getFieldByPath

* fix: avoid error

* fix: add translation

* fix(RangePicker): can be set to empty

* feat(utils): add hasEmptyValue

* fix: should not save empty

* fix: last few days should include today

* fix: limit user variable type to display

* fix: parse filter error

* fix: empty

* test: [skip ci]

* fix: remove ';'

* feat: improve code

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-03-30 23:49:57 +08:00
..
__tests__/server feat: provide the underscored option for the database (#1366) 2023-02-13 21:38:47 +08:00
src feat(parse-variables): support to parse variables in filter params (#1558) 2023-03-30 23:49:57 +08:00
client.d.ts docs: add resources-actions doc and sample (#853) 2022-09-29 21:03:35 +08:00
client.js docs: add resources-actions doc and sample (#853) 2022-09-29 21:03:35 +08:00
package.json chore(versions): 😊 publish v0.9.1-alpha.2 2023-03-09 12:45:30 +08:00
README.md docs: add hooks dev doc (#868) 2022-09-30 17:36:10 +08:00
server.d.ts docs: add resources-actions doc and sample (#853) 2022-09-29 21:03:35 +08:00
server.js docs: add resources-actions doc and sample (#853) 2022-09-29 21:03:35 +08:00

Actions for simple shop scenario

Register

yarn pm add sample-shop-actions

Activate

yarn pm enable sample-shop-actions

Launch the app

# for development
yarn dev

# for production
yarn build
yarn start

Connect to the API

Products API

# create a product
curl -X POST -H "Content-Type: application/json" -d '{"title": "iPhone 14 Pro", "price": 7999, "enabled": true, "inventory": 1}' "http://localhost:13000/api/products"

Orders API

# create a order
curl -X POST -H "Content-Type: application/json" -d '{"productId": 1, "quantity": 1, "totalPrice": 0, "userId": 2}' 'http://localhost:13000/api/orders'
# {"id": <id>, "status": 0, "productId": 1, "quantity": 1, "totalPrice": 7999, "userId": 1}

# list orders which userId=1 with product
curl 'http://localhost:13000/api/orders?filter={"status":2}&appends=product'