morpheusv2

A Matrix client written in Go-QT
git clone git://archive.git.mtrnord.blog/Nordgedanken/morpheusv2.git
Log | Files | Refs | README | LICENSE

db.go (1199B)


      1 // Copyright © 2018 MTRNord <info@nordgedanken.de>
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //     http://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 
     15 package db
     16 
     17 import (
     18 	"database/sql"
     19 	"github.com/Nordgedanken/Morpheusv2/pkg/matrix"
     20 )
     21 
     22 // DB defines a Interface to allow multiple DB Implementations
     23 type DB interface {
     24 	Init() error
     25 	Open() *sql.DB
     26 
     27 	SaveRoom(Room matrix.Room) error
     28 	GetRooms() (roomsR []matrix.Room, err error)
     29 	GetRoom(roomID string) (roomR matrix.Room, err error)
     30 
     31 	SaveUser(user matrix.User) error
     32 	GetUser(userID string) (userR matrix.User, err error)
     33 	GetCurrentUser() (userR matrix.User, err error)
     34 
     35 	SaveMessage(message matrix.Message) error
     36 	GetMessage(eventID string) (messageR matrix.Message, err error)
     37 }