Beispiel #1
0
    def card_write(self, list_id: Optional[int], card_instance: Card, request_user_id: int = None) -> Card:
        request = CardDataRequest(request_id=random.randrange(1000000),
                                  id=card_instance.unique_id,
                                  request_user_id=request_user_id,
                                  name=card_instance.name,
                                  description=card_instance.description,
                                  expiration_date=card_instance.expiration_date,
                                  priority=card_instance.priority,
                                  assignee=card_instance.assignee_id,
                                  children=card_instance.children,
                                  tags=card_instance.tags,
                                  list_id=list_id,
                                  board_id=None,
                                  request_type=RequestType.WRITE)

        response, error = self.storage_provider.execute(request)

        if error is not None:
            if error.code == StorageProviderErrors.ACCESS_DENIED:
                raise AccessDeniedError(error.description)
            else:
                raise Error("""Undefined DB exception! 
                Code: {} Description: {}""".format(error.code, error.description))

        return response.cards[0]
Beispiel #2
0
    def card_delete(self, card_id: int = None, card_name: str = None,
                    request_user_id: int = None) -> None:
        request = CardDataRequest(request_id=random.randrange(1000000),
                                  id=card_id,
                                  request_user_id=request_user_id,
                                  name=card_name,
                                  description=None,
                                  expiration_date=None,
                                  priority=None,
                                  assignee=None,
                                  children=None,
                                  tags=None,
                                  list_id=None,
                                  board_id=None,
                                  request_type=RequestType.DELETE)

        response, error = self.storage_provider.execute(request)

        if error is not None:
            if error.code == StorageProviderErrors.ACCESS_DENIED:
                raise AccessDeniedError(error.description)
            elif error.code == StorageProviderErrors.CARD_DOES_NOT_EXIST:
                raise CardDoesNotExistError(error.description)
            else:
                raise Error("""Undefined DB exception! 
                Code: {} Description: {}""".format(error.code, error.description))
Beispiel #3
0
    def card_read(self, list_id: Optional[int], card_id: int = None, card_name: str = None, tag_id: int = None,
                  board_id: int = None, request_user_id: int = None) -> List[Card]:
        request = CardDataRequest(request_id=random.randrange(1000000),
                                  id=card_id,
                                  request_user_id=request_user_id,
                                  name=card_name,
                                  description=None,
                                  expiration_date=None,
                                  priority=None,
                                  assignee=None,
                                  children=None,
                                  tags=[tag_id] if tag_id is not None else [],
                                  list_id=list_id,
                                  board_id=board_id,
                                  request_type=RequestType.READ)

        response, error = self.storage_provider.execute(request)

        if error is not None:
            if error.code == StorageProviderErrors.ACCESS_DENIED:
                raise AccessDeniedError(error.description)
            elif error.code == StorageProviderErrors.CARD_DOES_NOT_EXIST:
                raise CardDoesNotExistError(error.description)
            else:
                raise Error("""Undefined DB exception! 
                                Code: {} Description: {}""".format(error.code, error.description))

        for card in response.cards:
            try:
                card.plan = self.plan_read(card.user_id, request_user_id)
            except Error:
                pass

        return response.cards
Beispiel #4
0
    def list_delete(self, list_id: int = None, list_name: str = None,
                    request_user_id: int = None) -> None:

        if self.storage_provider.archived_list_id == list_id:
            raise AccessDeniedError("You can't delete this list")

        request = ListDataRequest(request_id=random.randrange(1000000),
                                  request_user_id=request_user_id,
                                  id=list_id,
                                  board_id=None,
                                  name=list_name,
                                  request_type=RequestType.DELETE)

        response, error = self.storage_provider.execute(request)

        if error is not None:
            if error.code == StorageProviderErrors.ACCESS_DENIED:
                raise AccessDeniedError(error.description)
            elif error.code == StorageProviderErrors.LIST_DOES_NOT_EXIST:
                raise ListDoesNotExistError(error.description)
            else:
                raise Error("""Undefined DB exception! 
                Code: {} Description: {}""".format(error.code, error.description))
Beispiel #5
0
    def board_delete(self, board_id: int = None, board_name: str = None, request_user_id: int = None) -> None:
        request = BoardDataRequest(request_id=random.randrange(1000000),
                                   request_user_id=request_user_id,
                                   id=board_id,
                                   name=board_name,
                                   request_type=RequestType.DELETE)

        response, error = self.storage_provider.execute(request)

        if error is not None:
            if error.code == StorageProviderErrors.ACCESS_DENIED:
                raise AccessDeniedError(error.description)
            elif error.code == StorageProviderErrors.BOARD_DOES_NOT_EXIST:
                raise BoardDoesNotExistError(error.description)
            else:
                raise Error("""Undefined DB exception! 
                Code: {} Description: {}""".format(error.code, error.description))
Beispiel #6
0
    def board_write(self, board_id: int = None, board_name: str = None, request_user_id: int = None) -> Board:
        request = BoardDataRequest(request_id=random.randrange(1000000),
                                   request_user_id=request_user_id,
                                   id=board_id,
                                   name=board_name,
                                   request_type=RequestType.WRITE)

        response, error = self.storage_provider.execute(request)

        if error is not None:
            if error.code == StorageProviderErrors.ACCESS_DENIED:
                raise AccessDeniedError(error.description)
            else:
                raise Error("""Undefined DB exception! 
                Code: {} Description: {}""".format(error.code, error.description))

        return response.boards[0]
Beispiel #7
0
    def plan_delete(self, card_id: int, request_user_id: int) -> None:
        request = PlanDataRequest(request_id=random.randrange(1000000),
                                  request_user_id=request_user_id,
                                  interval=None,
                                  last_created=None,
                                  card_id=card_id,
                                  request_type=RequestType.DELETE)

        response, error = self.storage_provider.execute(request)

        if error is not None:
            if error.code == StorageProviderErrors.ACCESS_DENIED:
                raise AccessDeniedError(error.description)
            elif error.code == StorageProviderErrors.CARD_DOES_NOT_EXIST:
                raise CardDoesNotExistError(error.description)
            elif error.code == StorageProviderErrors.PLAN_DOES_NOT_EXIST:
                raise PlanDoesNotExistError(error.description)
            else:
                raise Error("""Undefined DB exception! 
                                    Code: {} Description: {}""".format(error.code, error.description))
Beispiel #8
0
    def plan_write(self, card_id: int, request_user_id: int, interval: datetime.timedelta,
                   last_created: datetime.datetime) -> Plan:
        request = PlanDataRequest(request_id=random.randrange(1000000),
                                  request_user_id=request_user_id,
                                  interval=interval,
                                  last_created=last_created,
                                  card_id=card_id,
                                  request_type=RequestType.WRITE)

        response, error = self.storage_provider.execute(request)

        if error is not None:
            if error.code == StorageProviderErrors.ACCESS_DENIED:
                raise AccessDeniedError(error.description)
            elif error.code == StorageProviderErrors.CARD_DOES_NOT_EXIST:
                raise CardDoesNotExistError(error.description)
            else:
                raise Error("""Undefined DB exception! 
                                    Code: {} Description: {}""".format(error.code, error.description))

        return response.plan
Beispiel #9
0
    def list_read(self, board_id: Optional[int], list_id: int = None, list_name: str = None,
                  request_user_id: int = None) -> List[CardsList]:
        request = ListDataRequest(request_id=random.randrange(1000000),
                                  request_user_id=request_user_id,
                                  id=list_id,
                                  board_id=board_id,
                                  name=list_name,
                                  request_type=RequestType.READ)

        response, error = self.storage_provider.execute(request)

        if error is not None:
            if error.code == StorageProviderErrors.ACCESS_DENIED:
                raise AccessDeniedError(error.description)
            elif error.code == StorageProviderErrors.LIST_DOES_NOT_EXIST:
                raise ListDoesNotExistError(error.description)
            else:
                raise Error("""Undefined DB exception! 
                                Code: {} Description: {}""".format(error.code, error.description))

        return response.lists