+// CalendarDataStorage.h - CalendarDataStorage class header
+//
+// (c) 2016-2017 Xestia Software Development.
+//
+// This file is part of Xestia Calendar.
+//
+// Xestia Calendar is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by the
+// Free Software Foundation, version 3 of the license.
+//
+// Xestia Calendar is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with Xestia Calendar. If not, see <http://www.gnu.org/licenses/>
+
#ifndef __LIBRARIES_CALENDARDATASTORAGE_H__
#define __LIBRARIES_CALENDARDATASTORAGE_H__
#include "../../common/colour.h"
#include "../../common/random.h"
-/*enum CDSAddEntryResult{
- CDSADDENTRY_UNITTESTFAIL = -1,
- CDSADDENTRY_OK
-}*/
-
enum CDSAccountResult{
CDSACCOUNT_UNITTESTFAIL = -1,
CDSACCOUNT_OK,
CDSACCOUNT_FAILED,
CDSACCOUNT_NOACTION,
- CDSACCOUNT_NOACCOUNT
+ CDSACCOUNT_NOACCOUNT,
+ CDSACCOUNT_NONAME
};
enum CDSCalendarResult{
CDSCALENDAR_OK,
CDSCALENDAR_FAILED,
CDSCALENDAR_NOACTION,
+ CDSCALENDAR_NOACCOUNT,
CDSCALENDAR_NOCALENDAR
};
struct CDSGetAccountInfo{
int accountID = 0;
+ int accountPreferencesID = 0;
std::string accountName = "";
CDSAccountResult accountInfoResult = CDSACCOUNT_NOACTION;
};
std::string accountName = "";
std::string calendarName = "";
std::string calendarTextID = "";
+ std::string calendarDescription = "";
Colour calendarColour;
CDSAccountResult accountInfoResult = CDSACCOUNT_NOACTION;
CDSCalendarResult calendarInfoResult = CDSCALENDAR_NOACTION;
CDSEntryResult addEventResult = CDSENTRY_NOACTION;
};
+struct CDSEditEntryResult{
+ int calendarEntryID = 0;
+ CDSEntryResult editEventResult = CDSENTRY_NOACTION;
+};
+
struct CDSGetCalendarEntryInfo{
int accountID = 0;
int calendarID = 0;
int calendarEntryID = 0;
std::string entryName = "";
std::string entryDescription = "";
+ std::string entryFilename = "";
int entryStartYear = 0;
int entryStartMonth = 0;
int entryStartDay = 0;
std::string checksumValue = "";
};
+enum CDSCleanupResult{
+ CDSCLEANUP_UNITTESTFAIL = -1,
+ CDSCLEANUP_OK,
+ CDSCLEANUP_FAILED
+};
+
class CalendarDataStorage{
private:
// Account functions.
- CDSAccountResult AddAccount(std::string accountName);
+ CDSAccountResult AddAccount(std::string accountName, int accountPreferencesID);
CDSGetAccountInfo GetAccount(std::string accountName);
CDSAccountResult UpdateAccount(int accountID, std::string accountName);
CDSAccountResult DeleteAccount(int accountID);
// Calendar functions.
- CDSCalendarResult AddCalendar(int accountID, std::string calendarName, std::string calendarID, Colour calendarColour);
+ CDSCalendarResult AddCalendar(int accountID, std::string calendarName, std::string calendarID, Colour calendarColour, std::string calendarDescription);
CDSGetCalendarInfo GetCalendar(std::string accountName, std::string calendarTextID);
CDSGetCalendarInfo GetCalendar(int calendarID);
CDSCalendarList GetCalendarList(int accountID);
- CDSCalendarResult UpdateCalendar(int calendarID, std::string calendarName);
+ CDSCalendarResult UpdateCalendar(int calendarID, std::string calendarName, Colour calendarColour, std::string calendarDescription);
CDSCalendarResult DeleteCalendar(int calendarID);
// Entry functions
CDSGetCalendarEntryInfo GetEvent(int calendarEntryID);
CDSEntryList GetEventList(int calendarID);
CDSEntryList GetEventListByDate(int calendarYear, int calendarMonth, int calendarDay);
+ CDSEditEntryResult UpdateEvent(int eventID, std::string filename);
CDSEntryResult DeleteEvent(int calendarEntryID);
// Checksum functions.
CDSChecksumResult AddChecksum(std::string checksumName, std::string checksumValue);
CDSGetChecksumResult GetChecksum(std::string checksumName);
CDSChecksumResult UpdateChecksum(std::string checksumName, std::string checksumValue);
+
+ // Cleanup functions.
+
+ CDSCleanupResult Clear();
};