diff --git a/.idea/.idea.JsonApiDotNetCore.MongoDb/.idea/workspace.xml b/.idea/.idea.JsonApiDotNetCore.MongoDb/.idea/workspace.xml index f6a0b5c..2afb3ca 100644 --- a/.idea/.idea.JsonApiDotNetCore.MongoDb/.idea/workspace.xml +++ b/.idea/.idea.JsonApiDotNetCore.MongoDb/.idea/workspace.xml @@ -25,7 +25,8 @@ - + + @@ -191,6 +197,10 @@ + + + + diff --git a/.travis.yml b/.travis.yml index b98280e..1c08e62 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,10 +4,17 @@ dotnet: 3.1.100 solution: JsonApiDotNetCore.MongoDb.sln services: - mongodb -before_script: - - sleep 15 script: - dotnet restore - dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=lcov /p:CoverletOutput=./coverage/lcov-coverage after_success: - bash <(curl -s https://codecov.io/bash) +before_deploy: + - dotnet build -c Release + - dotnet pack -c Release +deploy: + skip_cleanup: true + provider: script + script: dotnet nuget push ./src/JsonApiDotNetCore.MongoDb/bin/Release/JsonApiDotNetCore.MongoDb.*.nupkg -k $NUGET_API -s https://api.nuget.org/v3/index.json + on: + branch: master diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..509975f --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) +Copyright (c) 2020 Alvaro Nicoli + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md index 9df8cb1..bfdc70a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,15 @@ # JsonApiDotNetCore MongoDB Repository +[![NuGet version][nuget-image]][nuget-url] +[![Downloads][downloads-image]][nuget-url] [![Build Status](https://travis-ci.com/mrnkr/JsonApiDotNetCore.MongoDb.svg?branch=master)](https://travis-ci.com/mrnkr/JsonApiDotNetCore.MongoDb) [![codecov](https://codecov.io/gh/mrnkr/JsonApiDotNetCore.MongoDb/branch/master/graph/badge.svg)](https://codecov.io/gh/mrnkr/JsonApiDotNetCore.MongoDb) +[![license][license]](https://github.com/mrnkr/JsonApiDotNetCore.MongoDb/blob/master/LICENSE) + +[nuget-image]:https://img.shields.io/nuget/v/JsonApiDotNetCore.MongoDb +[nuget-url]:https://www.nuget.org/packages/JsonApiDotNetCore.MongoDb +[downloads-image]:https://img.shields.io/nuget/dt/JsonApiDotNetCore.MongoDb +[license]:https://img.shields.io/github/license/mrnkr/JsonApiDotNetCore.MongoDb Plug-n-play implementation of `IResourceRepository` allowing you to use MongoDb with your `JsonApiDotNetCore` APIs. diff --git a/src/JsonApiDotNetCore.MongoDb/JsonApiDotNetCore.MongoDb.csproj b/src/JsonApiDotNetCore.MongoDb/JsonApiDotNetCore.MongoDb.csproj index d663a56..13281f3 100644 --- a/src/JsonApiDotNetCore.MongoDb/JsonApiDotNetCore.MongoDb.csproj +++ b/src/JsonApiDotNetCore.MongoDb/JsonApiDotNetCore.MongoDb.csproj @@ -1,7 +1,7 @@ - 4.0.0 + 4.0.0-beta1 $(NetCoreAppVersion) true @@ -9,7 +9,7 @@ jsonapi;json:api;dotnet;core;mongodb Persistence layer implementation for use of mongodb in applications using JsonApiDotNetCore - https://github.com/json-api-dotnet/JsonApiDotNetCore.MongoDb + https://github.com/mrnkr/JsonApiDotNetCore.MongoDb MIT false true diff --git a/src/JsonApiDotNetCore.MongoDb/Queries/Internal/QueryableBuilding/QueryableBuilder.cs b/src/JsonApiDotNetCore.MongoDb/Queries/Internal/QueryableBuilding/QueryableBuilder.cs index 4ed1e6e..0b70588 100644 --- a/src/JsonApiDotNetCore.MongoDb/Queries/Internal/QueryableBuilding/QueryableBuilder.cs +++ b/src/JsonApiDotNetCore.MongoDb/Queries/Internal/QueryableBuilding/QueryableBuilder.cs @@ -36,9 +36,7 @@ public QueryableBuilder(Expression source, Type elementType, Type extensionType, public Expression ApplyQuery(QueryLayer layer) { - layer = layer ?? throw new ArgumentNullException(nameof(layer)); - - Expression expression = _source; + var expression = _source; if (layer.Filter != null) { diff --git a/test/JsonApiDotNetCore.MongoDb.Example.Tests/coverage/lcov-coverage.info b/test/JsonApiDotNetCore.MongoDb.Example.Tests/coverage/lcov-coverage.info index 3932acf..d7bb35e 100644 --- a/test/JsonApiDotNetCore.MongoDb.Example.Tests/coverage/lcov-coverage.info +++ b/test/JsonApiDotNetCore.MongoDb.Example.Tests/coverage/lcov-coverage.info @@ -82,49 +82,46 @@ FNDA:26,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Int DA:38,26 DA:39,26 DA:41,26 -DA:43,26 +DA:42,14 +DA:43,14 DA:44,14 -DA:45,14 -DA:46,14 -DA:48,26 +DA:46,26 +DA:47,12 +DA:48,12 DA:49,12 -DA:50,12 -DA:51,12 -DA:53,26 +DA:51,26 +DA:52,12 +DA:53,12 DA:54,12 -DA:55,12 -DA:56,12 -DA:58,26 -DA:59,26 -BRDA:39,3,0,0 -BRDA:39,3,1,26 -BRDA:43,37,0,14 -BRDA:43,37,1,26 -BRDA:48,66,0,12 -BRDA:48,66,1,26 -BRDA:53,95,0,12 -BRDA:53,95,1,26 -FN:61,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplyFilter(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.FilterExpression) +DA:56,26 +DA:57,26 +BRDA:41,19,0,14 +BRDA:41,19,1,26 +BRDA:46,48,0,12 +BRDA:46,48,1,26 +BRDA:51,77,0,12 +BRDA:51,77,1,26 +FN:59,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplyFilter(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.FilterExpression) FNDA:14,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplyFilter(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.FilterExpression) -DA:62,14 +DA:60,14 +DA:61,14 DA:63,14 +DA:64,14 DA:65,14 -DA:66,14 -DA:67,14 -FN:69,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplySort(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.SortExpression) +FN:67,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplySort(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.SortExpression) FNDA:12,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplySort(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.SortExpression) -DA:70,12 +DA:68,12 +DA:69,12 DA:71,12 +DA:72,12 DA:73,12 -DA:74,12 -DA:75,12 -FN:77,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplyPagination(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.PaginationExpression) +FN:75,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplyPagination(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.PaginationExpression) FNDA:12,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplyPagination(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.PaginationExpression) -DA:78,12 +DA:76,12 +DA:77,12 DA:79,12 +DA:80,12 DA:81,12 -DA:82,12 -DA:83,12 FN:23,System.Void JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::.ctor(System.Linq.Expressions.Expression,System.Type,System.Type,JsonApiDotNetCore.Queries.Internal.QueryableBuilding.LambdaParameterNameFactory,JsonApiDotNetCore.Resources.IResourceFactory,JsonApiDotNetCore.Configuration.IResourceContextProvider,JsonApiDotNetCore.Queries.Internal.QueryableBuilding.LambdaScopeFactory) FNDA:26,System.Void JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::.ctor(System.Linq.Expressions.Expression,System.Type,System.Type,JsonApiDotNetCore.Queries.Internal.QueryableBuilding.LambdaParameterNameFactory,JsonApiDotNetCore.Resources.IResourceFactory,JsonApiDotNetCore.Configuration.IResourceContextProvider,JsonApiDotNetCore.Queries.Internal.QueryableBuilding.LambdaScopeFactory) DA:24,26 @@ -153,10 +150,10 @@ BRDA:33,124,0,0 BRDA:33,124,1,26 BRDA:34,147,0,26 BRDA:34,147,1,26 -LF:44 -LH:44 -BRF:22 -BRH:15 +LF:43 +LH:43 +BRF:20 +BRH:14 FNF:5 FNH:5 end_of_record @@ -245,20 +242,20 @@ FNH:3 end_of_record SF:/Users/mrnkr/Documents/code/JsonApiDotNetCore.MongoDb/src/Example/Models/Book.cs FN:12,System.String Example.Models.Book::get_Id() -FNDA:1470,System.String Example.Models.Book::get_Id() -DA:13,1470 +FNDA:1481,System.String Example.Models.Book::get_Id() +DA:13,1481 FN:15,System.String Example.Models.Book::get_Name() -FNDA:936,System.String Example.Models.Book::get_Name() -DA:16,936 +FNDA:942,System.String Example.Models.Book::get_Name() +DA:16,942 FN:19,System.Decimal Example.Models.Book::get_Price() -FNDA:1184,System.Decimal Example.Models.Book::get_Price() -DA:20,1184 +FNDA:1187,System.Decimal Example.Models.Book::get_Price() +DA:20,1187 FN:22,System.String Example.Models.Book::get_Category() -FNDA:906,System.String Example.Models.Book::get_Category() -DA:23,906 +FNDA:912,System.String Example.Models.Book::get_Category() +DA:23,912 FN:25,System.String Example.Models.Book::get_Author() -FNDA:906,System.String Example.Models.Book::get_Author() -DA:26,906 +FNDA:912,System.String Example.Models.Book::get_Author() +DA:26,912 FN:28,System.String Example.Models.Book::get_StringId() FNDA:0,System.String Example.Models.Book::get_StringId() DA:29,0 diff --git a/test/JsonApiDotNetCore.MongoDb.IntegrationTests/coverage/lcov-coverage.info b/test/JsonApiDotNetCore.MongoDb.IntegrationTests/coverage/lcov-coverage.info index 2df9d35..e17b18b 100644 --- a/test/JsonApiDotNetCore.MongoDb.IntegrationTests/coverage/lcov-coverage.info +++ b/test/JsonApiDotNetCore.MongoDb.IntegrationTests/coverage/lcov-coverage.info @@ -82,49 +82,46 @@ FNDA:0,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Inte DA:38,0 DA:39,0 DA:41,0 +DA:42,0 DA:43,0 DA:44,0 -DA:45,0 DA:46,0 +DA:47,0 DA:48,0 DA:49,0 -DA:50,0 DA:51,0 +DA:52,0 DA:53,0 DA:54,0 -DA:55,0 DA:56,0 -DA:58,0 -DA:59,0 -BRDA:39,3,0,0 -BRDA:39,3,1,0 -BRDA:43,37,0,0 -BRDA:43,37,1,0 -BRDA:48,66,0,0 -BRDA:48,66,1,0 -BRDA:53,95,0,0 -BRDA:53,95,1,0 -FN:61,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplyFilter(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.FilterExpression) +DA:57,0 +BRDA:41,19,0,0 +BRDA:41,19,1,0 +BRDA:46,48,0,0 +BRDA:46,48,1,0 +BRDA:51,77,0,0 +BRDA:51,77,1,0 +FN:59,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplyFilter(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.FilterExpression) FNDA:0,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplyFilter(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.FilterExpression) -DA:62,0 +DA:60,0 +DA:61,0 DA:63,0 +DA:64,0 DA:65,0 -DA:66,0 -DA:67,0 -FN:69,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplySort(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.SortExpression) +FN:67,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplySort(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.SortExpression) FNDA:0,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplySort(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.SortExpression) -DA:70,0 +DA:68,0 +DA:69,0 DA:71,0 +DA:72,0 DA:73,0 -DA:74,0 -DA:75,0 -FN:77,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplyPagination(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.PaginationExpression) +FN:75,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplyPagination(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.PaginationExpression) FNDA:0,System.Linq.Expressions.Expression JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::ApplyPagination(System.Linq.Expressions.Expression,JsonApiDotNetCore.Queries.Expressions.PaginationExpression) -DA:78,0 +DA:76,0 +DA:77,0 DA:79,0 +DA:80,0 DA:81,0 -DA:82,0 -DA:83,0 FN:23,System.Void JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::.ctor(System.Linq.Expressions.Expression,System.Type,System.Type,JsonApiDotNetCore.Queries.Internal.QueryableBuilding.LambdaParameterNameFactory,JsonApiDotNetCore.Resources.IResourceFactory,JsonApiDotNetCore.Configuration.IResourceContextProvider,JsonApiDotNetCore.Queries.Internal.QueryableBuilding.LambdaScopeFactory) FNDA:0,System.Void JsonApiDotNetCore.MongoDb.Queries.Internal.QueryableBuilding.QueryableBuilder::.ctor(System.Linq.Expressions.Expression,System.Type,System.Type,JsonApiDotNetCore.Queries.Internal.QueryableBuilding.LambdaParameterNameFactory,JsonApiDotNetCore.Resources.IResourceFactory,JsonApiDotNetCore.Configuration.IResourceContextProvider,JsonApiDotNetCore.Queries.Internal.QueryableBuilding.LambdaScopeFactory) DA:24,0 @@ -153,9 +150,9 @@ BRDA:33,124,0,0 BRDA:33,124,1,0 BRDA:34,147,0,0 BRDA:34,147,1,0 -LF:44 +LF:43 LH:0 -BRF:22 +BRF:20 BRH:0 FNF:5 FNH:0