From e1fb6fd193a465c1ac17ea218ed7d07a49d3db6a Mon Sep 17 00:00:00 2001
From: David Beniamine <david.beniamine@tetras-libre.fr>
Date: Wed, 18 Jan 2023 16:24:56 +0100
Subject: [PATCH] Minimal CRUD resource

---
 .gitignore                                    |  4 ++
 Mirador-backend/__init__.py                   |  0
 Mirador-backend/app.py                        | 11 ++++++
 Mirador-backend/resources/__init__.py         |  0
 Mirador-backend/resources/mirador_resource.py | 18 +++++++++
 Readme.md                                     | 31 +++++++++++++++
 setup.py                                      | 39 +++++++++++++++++++
 7 files changed, 103 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 Mirador-backend/__init__.py
 create mode 100644 Mirador-backend/app.py
 create mode 100644 Mirador-backend/resources/__init__.py
 create mode 100644 Mirador-backend/resources/mirador_resource.py
 create mode 100644 setup.py

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..69b2b1e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+venv
+*.egg-info
+.eggs
+**/__pycache__
diff --git a/Mirador-backend/__init__.py b/Mirador-backend/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/Mirador-backend/app.py b/Mirador-backend/app.py
new file mode 100644
index 0000000..548908a
--- /dev/null
+++ b/Mirador-backend/app.py
@@ -0,0 +1,11 @@
+from flask import Flask
+from flask_restful import Api
+from .resources.mirador_resource import MiradorResource
+
+app = Flask(__name__)
+api = Api(app)
+
+api.add_resource(MiradorResource, '/mirador_resource', '/mirador_resource/<int:id>')
+
+if __name__ == '__main__':
+    app.run(debug=True)
diff --git a/Mirador-backend/resources/__init__.py b/Mirador-backend/resources/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/Mirador-backend/resources/mirador_resource.py b/Mirador-backend/resources/mirador_resource.py
new file mode 100644
index 0000000..08f1588
--- /dev/null
+++ b/Mirador-backend/resources/mirador_resource.py
@@ -0,0 +1,18 @@
+from flask_restful import Resource
+
+
+class MiradorResource(Resource):
+    def get(self, id=None):
+        return {'method': 'get', 'id': id}
+
+    def post(self):
+        return {'method': 'post'}
+
+    def put(self, id):
+        return {'method': 'put', 'id': id}
+
+    def patch(self, id):
+        return {'method': 'patch', 'id': id}
+
+    def delete(self, id):
+        return {'method': 'delete', 'id': id}
diff --git a/Readme.md b/Readme.md
index e69de29..1fc694a 100644
--- a/Readme.md
+++ b/Readme.md
@@ -0,0 +1,31 @@
+# Mirador backend
+
+## Requirements
+
++ virtualenv (optionnal)
++ Python >= 3.10
+
+## Install
+
+### Dev mode
+
+1. Optionnal create a virtual env `virtualenv venv && . venv/bin/activate`
+2. Install dependencies `pip install -e .`
+
+### Production mode
+
+
+**TODO**
+
+## Run
+
+### Dev mode
+
+```
+cd Mirador-backend
+flask --debug run
+```
+
+### Production mode
+
+**TODO**
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..ec402d2
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,39 @@
+from setuptools import setup, find_packages
+
+from os import path
+
+here = path.abspath(path.dirname(__file__))
+
+with open(path.join(here, 'Readme.md'), encoding='utf-8') as f:
+
+    long_description = f.read()
+
+setup(
+
+    name="Mirador backend",
+
+    url="https://gitlab.tetras-libre.fr/iiif/backend",
+
+    version="1.0",
+
+    python_requires='>3.10.0',
+
+    license="Gpl v3+",
+
+    author="Tetras Libre",
+
+    author_email="David.Beniamine@Tetras-Libre.fr",
+
+    description="Backend for Mirador viewer",
+
+    long_description=long_description,
+
+    packages=find_packages(),
+
+    install_requires=["flask", "flask-restful"],
+
+    setup_requires=["pytest-runner"],
+
+    tests_require=["pytest"],
+
+)
-- 
GitLab