Compare commits
1
Commits
main
..
ba66c10ee3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ba66c10ee3 |
@@ -1,24 +0,0 @@
|
|||||||
name: devranta build
|
|
||||||
run-name: devranta async devRant api client build and test
|
|
||||||
on: [push]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
Build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Check out repository code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Pull repo
|
|
||||||
run: git pull
|
|
||||||
- name: List files in the repository
|
|
||||||
run: |
|
|
||||||
ls ${{ gitea.workspace }}
|
|
||||||
- name: Ensure environment
|
|
||||||
run: make ensure_env
|
|
||||||
- name: Install package
|
|
||||||
run: make install
|
|
||||||
- name: Build new package
|
|
||||||
run: make build
|
|
||||||
- name: Test application
|
|
||||||
run: make test
|
|
||||||
|
|
||||||
@@ -1,9 +1,4 @@
|
|||||||
# ---> Python
|
# ---> Python
|
||||||
|
|
||||||
.vscode
|
|
||||||
.history
|
|
||||||
form.db*
|
|
||||||
|
|
||||||
# Byte-compiled / optimized / DLL files
|
# Byte-compiled / optimized / DLL files
|
||||||
__pycache__/
|
__pycache__/
|
||||||
*.py[cod]
|
*.py[cod]
|
||||||
|
|||||||
@@ -1,32 +0,0 @@
|
|||||||
PYTHON=./.venv/bin/python
|
|
||||||
PIP=./.venv/bin/pip
|
|
||||||
BIN=./.venv/bin
|
|
||||||
ENV=./.venv/bin/activate
|
|
||||||
APP=form
|
|
||||||
|
|
||||||
all: ensure_env format install build test
|
|
||||||
|
|
||||||
ensure_env:
|
|
||||||
-@python3 -m venv .venv
|
|
||||||
|
|
||||||
install:
|
|
||||||
$(PIP) install -e .
|
|
||||||
|
|
||||||
format:
|
|
||||||
$(PIP) install shed
|
|
||||||
. $(ENV) && shed
|
|
||||||
|
|
||||||
build:
|
|
||||||
$(PIP) install build
|
|
||||||
$(PYTHON) -m build .
|
|
||||||
|
|
||||||
test:
|
|
||||||
$(PYTHON) -m unittest $(APP).tests
|
|
||||||
|
|
||||||
run:
|
|
||||||
$(BIN)/$(APP).serve
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,31 +1,3 @@
|
|||||||
# form
|
# form
|
||||||
|
|
||||||
Rest form generator / validator with CSRF support
|
Rest form generator / validator with CSRF support
|
||||||
|
|
||||||
## Usage
|
|
||||||
```
|
|
||||||
async with aiohttp.ClientSession():
|
|
||||||
response = await aiohttp.post("[base_url]/create/",data=dict(
|
|
||||||
firstname=dict(
|
|
||||||
type="string",
|
|
||||||
max_length=20,
|
|
||||||
min_length=2,
|
|
||||||
required=True,
|
|
||||||
default=""
|
|
||||||
),
|
|
||||||
age=dict(
|
|
||||||
type="number",
|
|
||||||
min_value=16,
|
|
||||||
max_value=99,
|
|
||||||
required=False,
|
|
||||||
default=22
|
|
||||||
),
|
|
||||||
captcha=dict(
|
|
||||||
type="captcha",
|
|
||||||
width=100,
|
|
||||||
height=40
|
|
||||||
)
|
|
||||||
))
|
|
||||||
form = await response.json()
|
|
||||||
# form is now exactly your payload with an extra field called csrf.
|
|
||||||
```
|
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
[build-system]
|
|
||||||
requires = ["setuptools", "wheel"]
|
|
||||||
build-backend = "setuptools.build_meta"
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
[metadata]
|
|
||||||
name = form
|
|
||||||
version = 1.0.0
|
|
||||||
description = REST Form builder and validator.
|
|
||||||
author = retoor
|
|
||||||
author_email = retoor@molodetz.nl
|
|
||||||
license = MIT
|
|
||||||
long_description = file: README.md
|
|
||||||
long_description_content_type = text/markdown
|
|
||||||
|
|
||||||
[options]
|
|
||||||
packages = find:
|
|
||||||
package_dir =
|
|
||||||
= src
|
|
||||||
python_requires = >=3.7
|
|
||||||
install_requires =
|
|
||||||
requests
|
|
||||||
app @ git+https://retoor.molodetz.nl/retoor/app
|
|
||||||
captcha
|
|
||||||
|
|
||||||
[options.packages.find]
|
|
||||||
where = src
|
|
||||||
|
|
||||||
[options.entry_points]
|
|
||||||
console_scripts =
|
|
||||||
form.serve = form.__main__:main
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
from app.app import argument_parser
|
|
||||||
|
|
||||||
from form.app import Application
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
args = argument_parser.parse_args()
|
|
||||||
app = Application(db_path="sqlite:///form.db", db_web=args.db_web)
|
|
||||||
app.run(host=args.host, port=args.port)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
from app.app import Application as BaseApplication
|
|
||||||
from aiohttp import web
|
|
||||||
|
|
||||||
|
|
||||||
class Application(BaseApplication):
|
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
|
|
||||||
super().__init__(*args, **kwargs)
|
|
||||||
|
|
||||||
self.router.add_get("/", self.index_handler)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def forms_created(self):
|
|
||||||
return int(self.sget("forms_created", 0))
|
|
||||||
|
|
||||||
@forms_created.setter
|
|
||||||
def forms_created(self, value):
|
|
||||||
self.sset("forms_created", int(value))
|
|
||||||
|
|
||||||
async def index_handler(self,request):
|
|
||||||
self.forms_created += 1
|
|
||||||
print(self.forms_created)
|
|
||||||
|
|
||||||
return web.json_response(
|
|
||||||
{"message": "Nothing to see here", "error": "404"}, status=404
|
|
||||||
)
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
import unittest
|
|
||||||
|
|
||||||
|
|
||||||
class AppTestCase(unittest.IsolatedAsyncioTestCase):
|
|
||||||
|
|
||||||
async def asyncSetup(self):
|
|
||||||
print("Async setup")
|
|
||||||
|
|
||||||
async def test_init(self):
|
|
||||||
self.assertTrue(True)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
unittest.main()
|
|
||||||
Reference in New Issue
Block a user