diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..8f620cd --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,28 @@ +name: CI + +on: + push: + pull_request: + branches: [ main ] +env: + DOTNET_VERSION: '8.0.x' +jobs: + ci: + name: ci-${{matrix.os}} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest] + steps: + - name: Check out the repo + uses: actions/checkout@v4 + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNET_VERSION }} + - name: Install dependencies + run: dotnet restore + - name: Build + run: dotnet build --configuration Release --no-restore + - name: Test + run: dotnet test --no-restore --verbosity normal \ No newline at end of file diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index e90f18a..2d366a6 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -1,4 +1,4 @@ -name: Docker Image CI +name: Docker Image CD on: push: diff --git a/src/Data/MeTube.Data/Repository/BaseRepository.cs b/src/Data/MeTube.Data/Repository/BaseRepository.cs index e29dd18..5fd7092 100644 --- a/src/Data/MeTube.Data/Repository/BaseRepository.cs +++ b/src/Data/MeTube.Data/Repository/BaseRepository.cs @@ -3,7 +3,7 @@ namespace MeTube.Data.Repository; -public class BaseRepository where TEntity : BaseEntity +public class BaseRepository : IBaseRepository where TEntity : BaseEntity { protected readonly MeTubeDbContext _dbContext; diff --git a/src/Data/MeTube.Data/Repository/Channels/ChannelRepository.cs b/src/Data/MeTube.Data/Repository/Channels/ChannelRepository.cs index 1bd3901..519b0a3 100644 --- a/src/Data/MeTube.Data/Repository/Channels/ChannelRepository.cs +++ b/src/Data/MeTube.Data/Repository/Channels/ChannelRepository.cs @@ -2,7 +2,7 @@ namespace MeTube.Data.Repository.Channels; -public class ChannelRepository : BaseRepository +public class ChannelRepository : BaseRepository, IChannelRepository { public ChannelRepository(MeTubeDbContext dbContext) : base(dbContext) { diff --git a/src/Data/MeTube.Data/Repository/Channels/IChannelRepository.cs b/src/Data/MeTube.Data/Repository/Channels/IChannelRepository.cs new file mode 100644 index 0000000..59a6a80 --- /dev/null +++ b/src/Data/MeTube.Data/Repository/Channels/IChannelRepository.cs @@ -0,0 +1,7 @@ +using MeTube.Data.Models.Channels; + +namespace MeTube.Data.Repository.Channels; + +public interface IChannelRepository : IBaseRepository +{ +} diff --git a/src/Data/MeTube.Data/Repository/IBaseRepository.cs b/src/Data/MeTube.Data/Repository/IBaseRepository.cs new file mode 100644 index 0000000..c0516fd --- /dev/null +++ b/src/Data/MeTube.Data/Repository/IBaseRepository.cs @@ -0,0 +1,14 @@ +namespace MeTube.Data.Repository; + +public interface IBaseRepository +{ + Task CreateAsync(TEntity entity); + + IQueryable GetAll(); + + IQueryable GetAllAsNoTracking(); + + Task EditAsync(TEntity entity); + + Task DeleteAsync(TEntity entity); +} diff --git a/src/Data/MeTube.Data/Repository/Reactions/IReactionTypeRepository.cs b/src/Data/MeTube.Data/Repository/Reactions/IReactionTypeRepository.cs new file mode 100644 index 0000000..73704c6 --- /dev/null +++ b/src/Data/MeTube.Data/Repository/Reactions/IReactionTypeRepository.cs @@ -0,0 +1,7 @@ +using MeTube.Data.Models.Reactions; + +namespace MeTube.Data.Repository.Reactions; + +public interface IReactionTypeRepository : IBaseRepository +{ +} diff --git a/src/Data/MeTube.Data/Repository/Reactions/IVideoReactionRepository.cs b/src/Data/MeTube.Data/Repository/Reactions/IVideoReactionRepository.cs new file mode 100644 index 0000000..8822409 --- /dev/null +++ b/src/Data/MeTube.Data/Repository/Reactions/IVideoReactionRepository.cs @@ -0,0 +1,7 @@ +using MeTube.Data.Models.Reactions; + +namespace MeTube.Data.Repository.Reactions; + +public interface IVideoReactionRepository : IBaseRepository +{ +} diff --git a/src/Data/MeTube.Data/Repository/Reactions/ReactionTypeRepository.cs b/src/Data/MeTube.Data/Repository/Reactions/ReactionTypeRepository.cs index 0322543..69043e5 100644 --- a/src/Data/MeTube.Data/Repository/Reactions/ReactionTypeRepository.cs +++ b/src/Data/MeTube.Data/Repository/Reactions/ReactionTypeRepository.cs @@ -2,7 +2,7 @@ namespace MeTube.Data.Repository.Reactions; -public class ReactionTypeRepository : BaseRepository +public class ReactionTypeRepository : BaseRepository, IReactionTypeRepository { public ReactionTypeRepository(MeTubeDbContext dbContext) : base(dbContext) diff --git a/src/Data/MeTube.Data/Repository/Reactions/VideoReactionRepository.cs b/src/Data/MeTube.Data/Repository/Reactions/VideoReactionRepository.cs index b555941..de2a31a 100644 --- a/src/Data/MeTube.Data/Repository/Reactions/VideoReactionRepository.cs +++ b/src/Data/MeTube.Data/Repository/Reactions/VideoReactionRepository.cs @@ -2,7 +2,7 @@ namespace MeTube.Data.Repository.Reactions; -public class VideoReactionRepository : BaseRepository +public class VideoReactionRepository : BaseRepository, IVideoReactionRepository { public VideoReactionRepository(MeTubeDbContext dbContext) : base(dbContext) diff --git a/src/Data/MeTube.Data/Repository/Videos/IVideoRepository.cs b/src/Data/MeTube.Data/Repository/Videos/IVideoRepository.cs new file mode 100644 index 0000000..1716cc7 --- /dev/null +++ b/src/Data/MeTube.Data/Repository/Videos/IVideoRepository.cs @@ -0,0 +1,7 @@ +using MeTube.Data.Models.Videos; + +namespace MeTube.Data.Repository.Videos; + +public interface IVideoRepository : IBaseRepository