add separate table for users

This commit is contained in:
dkanada 2021-04-13 17:25:49 +09:00
commit af37f7b307
8 changed files with 126 additions and 42 deletions

View file

@ -7,20 +7,23 @@ import androidx.sqlite.db.SupportSQLiteDatabase;
import com.dkanada.gramophone.model.Server;
import com.dkanada.gramophone.model.Song;
import com.dkanada.gramophone.model.User;
@androidx.room.Database(
entities = {
Server.class,
Song.class,
QueueSong.class,
Server.class
User.class
},
version = 2,
version = 3,
exportSchema = false
)
public abstract class JellyDatabase extends RoomDatabase {
public abstract QueueSongDao queueSongDao();
public abstract SongDao songDao();
public abstract ServerDao serverDao();
public abstract SongDao songDao();
public abstract QueueSongDao queueSongDao();
public abstract UserDao userDao();
public static final Migration Migration2 = new Migration(1, 2) {
@Override
@ -29,4 +32,16 @@ public abstract class JellyDatabase extends RoomDatabase {
+ "url TEXT, user TEXT, token TEXT)");
}
};
public static final Migration Migration3 = new Migration(2, 3) {
@Override
public void migrate(@NonNull SupportSQLiteDatabase database) {
database.execSQL("DROP TABLE servers");
database.execSQL("CREATE TABLE servers (id TEXT NOT NULL PRIMARY KEY,"
+ "name TEXT, url TEXT)");
database.execSQL("CREATE TABLE users (id TEXT NOT NULL PRIMARY KEY,"
+ "serverId TEXT, name TEXT, token TEXT)");
}
};
}

View file

@ -0,0 +1,26 @@
package com.dkanada.gramophone.database;
import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.OnConflictStrategy;
import androidx.room.Query;
import com.dkanada.gramophone.model.User;
import java.util.List;
@Dao
public interface UserDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertUser(User user);
@Delete
void deleteUser(User user);
@Query("SELECT * FROM users")
List<User> getUsers();
@Query("SELECT * FROM users WHERE id = :id")
User getUser(String id);
}