Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
refactor(jsonapi-controller): use StringId to check User defined ids
  • Loading branch information
jaredcnance committed Mar 15, 2017
commit fb4ebac858e8e69ae5e1be3cb24788810d6cde3a
29 changes: 14 additions & 15 deletions src/JsonApiDotNetCore/Controllers/JsonApiController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

namespace JsonApiDotNetCore.Controllers
{
public class JsonApiController<T>
public class JsonApiController<T>
: JsonApiController<T, int> where T : class, IIdentifiable<int>
{
public JsonApiController(
Expand All @@ -24,7 +24,7 @@ public JsonApiController(
{ }
}

public class JsonApiController<T, TId>
public class JsonApiController<T, TId>
: JsonApiControllerMixin where T : class, IIdentifiable<TId>
{
private readonly IEntityRepository<T, TId> _entities;
Expand Down Expand Up @@ -77,7 +77,7 @@ public virtual async Task<IActionResult> GetAsync()
public virtual async Task<IActionResult> GetAsync(TId id)
{
T entity;
if(_jsonApiContext.QuerySet?.IncludedRelationships != null)
if (_jsonApiContext.QuerySet?.IncludedRelationships != null)
entity = await _getWithRelationshipsAsync(id);
else
entity = await _entities.GetAsync(id);
Expand Down Expand Up @@ -138,8 +138,7 @@ public virtual async Task<IActionResult> PostAsync([FromBody] T entity)
return UnprocessableEntity();
}

var stringId = entity.Id.ToString();
if(stringId.Length > 0 && stringId != "0")
if (!string.IsNullOrEmpty(entity.StringId))
return Forbidden();

await _entities.CreateAsync(entity);
Expand All @@ -158,7 +157,7 @@ public virtual async Task<IActionResult> PatchAsync(TId id, [FromBody] T entity)

var updatedEntity = await _entities.UpdateAsync(id, entity);

if(updatedEntity == null) return NotFound();
if (updatedEntity == null) return NotFound();

return Ok(updatedEntity);
}
Expand All @@ -185,12 +184,12 @@ public virtual async Task<IActionResult> PatchRelationshipsAsync(TId id, string
.Relationships
.FirstOrDefault(r => r.InternalRelationshipName == relationshipName);

var relationshipIds = relationships.Select(r=>r.Id);
var relationshipIds = relationships.Select(r => r.Id);

await _entities.UpdateRelationshipsAsync(entity, relationship, relationshipIds);

return Ok();

}

[HttpDelete("{id}")]
Expand All @@ -208,14 +207,14 @@ private IQueryable<T> ApplySortAndFilterQuery(IQueryable<T> entities)
{
var query = _jsonApiContext.QuerySet;

if(_jsonApiContext.QuerySet == null)
if (_jsonApiContext.QuerySet == null)
return entities;

if(query.Filters.Count > 0)
foreach(var filter in query.Filters)
if (query.Filters.Count > 0)
foreach (var filter in query.Filters)
entities = _entities.Filter(entities, filter);

if(query.SortParameters != null && query.SortParameters.Count > 0)
if (query.SortParameters != null && query.SortParameters.Count > 0)
entities = _entities.Sort(entities, query.SortParameters);

return entities;
Expand All @@ -224,7 +223,7 @@ private IQueryable<T> ApplySortAndFilterQuery(IQueryable<T> entities)
private async Task<IEnumerable<T>> ApplyPageQueryAsync(IQueryable<T> entities)
{
var pageManager = _jsonApiContext.PageManager;
if(!pageManager.IsPaginated)
if (!pageManager.IsPaginated)
return entities;

var query = _jsonApiContext.QuerySet?.PageQuery ?? new PageQuery();
Expand All @@ -238,7 +237,7 @@ private IQueryable<T> IncludeRelationships(IQueryable<T> entities, List<string>
{
_jsonApiContext.IncludedRelationships = relationships;

foreach(var r in relationships)
foreach (var r in relationships)
entities = _entities.Include(entities, r.ToProperCase());

return entities;
Expand Down