Browse Source

create function for batch sms creation

Clovis JAQUIN 2 years ago
parent
commit
3aa0decf68
3 changed files with 48 additions and 0 deletions
  1. 3 0
      .env.example
  2. 3 0
      app/core/config.py
  3. 42 0
      app/create_sms_batch.py

+ 3 - 0
.env.example

@@ -17,5 +17,8 @@ TEST_DATABASE_PASSWORD=ywRCUjJijmQoBmWxIfLldOoITPzajPSNvTvHyugQoSqGwNcvQE
 TEST_DATABASE_PORT=37270
 TEST_DATABASE_DB=test_db
 
+
+BATCH_SMS_PHONE_NUMBER="01 10 10 10 10"
+
 FIRST_SUPERUSER_EMAIL=example@example.com
 FIRST_SUPERUSER_PASSWORD=OdLknKQJMUwuhpAVHvRC

+ 3 - 0
app/core/config.py

@@ -63,6 +63,9 @@ class Settings(BaseSettings):
     TEST_DATABASE_DB: str = "postgres"
     TEST_SQLALCHEMY_DATABASE_URI: str = ""
 
+    # SMS batch
+    BATCH_SMS_PHONE_NUMBER: str = ""
+
     # FIRST SUPERUSER
     FIRST_SUPERUSER_EMAIL: EmailStr
     FIRST_SUPERUSER_PASSWORD: str

+ 42 - 0
app/create_sms_batch.py

@@ -0,0 +1,42 @@
+"""
+
+"""
+
+from sqlalchemy import select
+from datetime import datetime, timedelta
+from app.core import config, security
+from app.core.session import session
+from app.models import User, Sms, Project
+
+TEST_SMS_PROJECT_NAME = "test_project pour sms"
+NUMBER_OF_SMS = 100
+
+
+def main() -> None:
+    print("Create SMS ")
+    with session() as db:
+        # Get or create the project hosting the sms
+        result = db.execute(select(Project).where(Project.email == TEST_SMS_PROJECT_NAME))
+        project = result.scalars().first()
+        if project is None:
+            project = Project(name=TEST_SMS_PROJECT_NAME)
+            db.add(new_superuser)
+            db.commit()
+            db.refresh(project)
+
+        now = datetime.now()
+
+        for t in range(NUMBER_OF_SMS):
+            sending_time = now + timedelta(minutes=t * 5)
+            sms = Sms(
+                project_id=project.id,
+                content=sending_time.strftime("%m/%d/%Y, %H:%M:%S"),
+                phone_number=config.settings.BATCH_SMS_PHONE_NUMBER,
+                sending_time=sending_time,
+            )
+            db.add(sms)
+        db.commit()
+
+
+if __name__ == "__main__":
+    main()