summaryrefslogtreecommitdiff
path: root/rcal
diff options
context:
space:
mode:
authoremkael <emkael@tlen.pl>2016-02-24 23:38:27 +0100
committeremkael <emkael@tlen.pl>2016-02-24 23:41:25 +0100
commit2173f7d7613b5158f4bb2f71a02df353c058c1ee (patch)
treeeac23e40bc497706b862b5d2ca01920c4b37ed92 /rcal
parent6e72eace43adc48f0b311c26d66d13315e25fe93 (diff)
* moving PHP app files to app/php and Python app files to app/python
Diffstat (limited to 'rcal')
-rw-r--r--rcal/__init__.py0
-rw-r--r--rcal/db.py34
-rw-r--r--rcal/model.py122
3 files changed, 0 insertions, 156 deletions
diff --git a/rcal/__init__.py b/rcal/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/rcal/__init__.py
+++ /dev/null
diff --git a/rcal/db.py b/rcal/db.py
deleted file mode 100644
index 12fcd88..0000000
--- a/rcal/db.py
+++ /dev/null
@@ -1,34 +0,0 @@
-import json
-from os import path
-
-import sqlalchemy.engine.url as url
-from sqlalchemy import create_engine
-from sqlalchemy.orm import sessionmaker
-
-
-class Session(object):
-
- engine = None
-
- def __init__(self):
- config = json.load(
- open(path.join(path.dirname(
- path.realpath(__file__)), '..', 'conf', 'db.json')))
- db_str = url.URL(
- drivername=config['type'],
- host=config['host'],
- username=config['user'],
- password=config['pass'],
- database=config['name'],
- query={'charset': config['cset']}
- )
- self.engine = create_engine(db_str, encoding=config['cset'])
-
- def get_maker(self):
- return sessionmaker(bind=self.engine)
-
- @staticmethod
- def create():
- session = Session()
- maker = session.get_maker()
- return maker()
diff --git a/rcal/model.py b/rcal/model.py
deleted file mode 100644
index faed188..0000000
--- a/rcal/model.py
+++ /dev/null
@@ -1,122 +0,0 @@
-# pylint: disable=too-few-public-methods, invalid-name
-from sqlalchemy import Column, ForeignKey
-from sqlalchemy.ext.declarative import declarative_base
-from sqlalchemy.orm import relationship
-from sqlalchemy.types import (TIMESTAMP, Boolean, DateTime, Integer, String,
- TypeDecorator)
-
-from dateutil.tz import tzutc
-
-
-class UTCDateTime(TypeDecorator):
- impl = DateTime
-
- def process_bind_param(self, value, engine):
- if value is not None:
- return value.astimezone(tzutc())
-
- def process_result_value(self, value, engine):
- if value is not None:
- return value.replace(tzinfo=tzutc())
-
-
-BASE = declarative_base()
-
-
-class Calendar(BASE):
- __tablename__ = 'calendars'
-
- uid = Column(String(255), primary_key=True)
- url = Column(String(255))
- name = Column(String(255), index=True)
- website = Column(String(255))
- visible = Column(Boolean, index=True)
- last_updated = Column(TIMESTAMP)
-
- _category = Column(
- Integer,
- ForeignKey(
- 'categories.id',
- onupdate='CASCADE',
- ondelete='SET NULL'))
- category = relationship(
- 'Category',
- back_populates='calendars',
- order_by='Calendar.name')
-
- entries = relationship(
- 'Entry',
- back_populates='calendar',
- cascade="all",
- passive_deletes=True,
- order_by='Entry.begin_date')
-
- @staticmethod
- def fetch(uid, session, name=None, url=None):
- calendar = session.query(Calendar).filter(Calendar.uid == uid).first()
- if not calendar:
- calendar = Calendar()
- calendar.uid = uid
- session.add(calendar)
- if name:
- calendar.name = name
- if url:
- calendar.url = url
- return calendar
-
-
-class Entry(BASE):
- __tablename__ = 'entries'
-
- id = Column(Integer, primary_key=True)
- uid = Column(String(255), index=True, unique=True)
- begin_date = Column(UTCDateTime, index=True)
- end_date = Column(UTCDateTime)
- all_day = Column(Boolean)
- name = Column(String(255))
- location = Column(String(255))
-
- _calendar = Column(
- String(255),
- ForeignKey(
- 'calendars.uid',
- onupdate='CASCADE',
- ondelete='CASCADE'))
- calendar = relationship(
- 'Calendar',
- back_populates='entries',
- order_by='Entry.begin_date')
-
- @staticmethod
- def fetch(uid, session):
- entry = session.query(Entry).filter(Entry.uid == uid).first()
- if not entry:
- entry = Entry()
- session.add(entry)
- return entry
-
-
-class Category(BASE):
- __tablename__ = 'categories'
-
- id = Column(Integer, primary_key=True)
- name = Column(String(255), index=True)
-
- calendars = relationship(
- 'Calendar',
- back_populates='category',
- cascade="all",
- passive_deletes=True,
- order_by='Calendar.name')
-
- @staticmethod
- def fetch(name, session):
- category = session.query(Category).filter(
- Category.name == name).first()
- if not category:
- category = Category()
- category.name = name
- session.add(category)
- return category
-
-__all__ = ('Calendar', 'Entry', 'Category')