Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
161 changes: 161 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
#################
## Visual Studio
#################

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# User-specific files
*.suo
*.user
*.sln.docstates

# Build results

.vs/
[Dd]ebug/
[Rr]elease/
x64/
[Bb]in/
[Oo]bj/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.log
*.scc

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile

# Visual Studio profiler
*.psess
*.vsp
*.vspx

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# NCrunch
*.ncrunch*
.*crunch*.local.xml

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.Publish.xml
*.pubxml

# NuGet Packages Directory
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
#packages/

# Windows Azure Build Output
csx
*.build.csdef

# Windows Store app package directory
AppPackages/

# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.[Pp]ublish.xml
*.pfx
*.publishsettings

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm

# SQL Server files
App_Data/*.mdf
App_Data/*.ldf

#############
## Windows detritus
#############

# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Mac crap
.DS_Store


#######################
## nopCommerce specific
###########
glob:*.user
*.patch
*.hg
/Nop.Plugin.Api.sln
2 changes: 1 addition & 1 deletion Nop.Plugin.Api/ApiStartup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ private void TryRunUpgradeScript(ConfigurationDbContext configurationContext)

configurationContext.SaveChanges();
}
catch (Exception ex)
catch (Exception)
{
// Probably the upgrade script was already executed and we don't need to do anything.
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ public ActionResult Create(ClientApiModel model, bool continueEditing)
}

[HttpGet]
[Route("edit/{id}")]
[Route("edit/{id:int}")]
public IActionResult Edit(int id)
{
var clientModel = _clientService.FindClientByIdAsync(id);
Expand All @@ -104,7 +104,7 @@ public IActionResult Edit(ClientApiModel model, bool continueEditing)
}

[HttpPost, ActionName("Delete")]
[Route("delete/{id}")]
[Route("delete/{id:int}")]
public IActionResult DeleteConfirmed(int id)
{
_clientService.DeleteClient(id);
Expand Down
45 changes: 41 additions & 4 deletions Nop.Plugin.Api/Controllers/CategoriesController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ public IActionResult GetCategoriesCount(CategoriesCountParametersModel parameter
/// <response code="404">Not Found</response>
/// <response code="401">Unauthorized</response>
[HttpGet]
[Route("/api/categories/{id}")]
[Route("/api/categories/{id:int}")]
[ProducesResponseType(typeof(CategoriesRootObject), (int)HttpStatusCode.OK)]
[ProducesResponseType(typeof(ErrorsRootObject), (int)HttpStatusCode.BadRequest)]
[ProducesResponseType(typeof(string), (int)HttpStatusCode.Unauthorized)]
Expand Down Expand Up @@ -172,7 +172,44 @@ public IActionResult GetCategoryById(int id, string fields = "")

return new RawJsonActionResult(json);
}


/// <summary>
/// Search for categories matching supplied query
/// </summary>
/// <response code="200">OK</response>
/// <response code="400">Bad Request</response>
/// <response code="401">Unauthorized</response>
[HttpGet]
[Route("/api/categories/search")]
[ProducesResponseType(typeof(CategoriesRootObject), (int)HttpStatusCode.OK)]
[ProducesResponseType(typeof(ErrorsRootObject), (int)HttpStatusCode.BadRequest)]
[ProducesResponseType(typeof(string), (int)HttpStatusCode.Unauthorized)]
public IActionResult Search(CategoriesSearchParametersModel parameters)
{
if (parameters.Limit <= Configurations.MinLimit || parameters.Limit > Configurations.MaxLimit)
{
return Error(HttpStatusCode.BadRequest, "limit", "Invalid limit parameter");
}

if (parameters.Page <= 0)
{
return Error(HttpStatusCode.BadRequest, "page", "Invalid page parameter");
}

var categories = _categoryApiService.Search(parameters.Query, parameters.Order, parameters.Page, parameters.Limit);

IList<CategoryDto> categoriesAsDtos = categories.Select(x => _dtoHelper.PrepareCategoryDTO(x)).ToList();

var categoriesRootObject = new CategoriesRootObject()
{
Categories = categoriesAsDtos
};

var json = JsonFieldsSerializer.Serialize(categoriesRootObject, parameters.Fields);

return new RawJsonActionResult(json);
}

[HttpPost]
[Route("/api/categories")]
[ProducesResponseType(typeof(CategoriesRootObject), (int)HttpStatusCode.OK)]
Expand Down Expand Up @@ -238,7 +275,7 @@ public IActionResult CreateCategory([ModelBinder(typeof(JsonModelBinder<Category
}

[HttpPut]
[Route("/api/categories/{id}")]
[Route("/api/categories/{id:int}")]
[ProducesResponseType(typeof(CategoriesRootObject), (int)HttpStatusCode.OK)]
[ProducesResponseType(typeof(ErrorsRootObject), 422)]
[ProducesResponseType(typeof(string), (int)HttpStatusCode.NotFound)]
Expand Down Expand Up @@ -299,7 +336,7 @@ public IActionResult UpdateCategory(
}

[HttpDelete]
[Route("/api/categories/{id}")]
[Route("/api/categories/{id:int}")]
[ProducesResponseType(typeof(void), (int)HttpStatusCode.OK)]
[ProducesResponseType(typeof(ErrorsRootObject), (int)HttpStatusCode.BadRequest)]
[ProducesResponseType(typeof(string), (int)HttpStatusCode.NotFound)]
Expand Down
6 changes: 3 additions & 3 deletions Nop.Plugin.Api/Controllers/CustomersController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ public IActionResult GetCustomers(CustomersParametersModel parameters)
/// <response code="404">Not Found</response>
/// <response code="401">Unauthorized</response>
[HttpGet]
[Route("/api/customers/{id}")]
[Route("/api/customers/{id:int}")]
[ProducesResponseType(typeof(CustomersRootObject), (int)HttpStatusCode.OK)]
[ProducesResponseType(typeof(ErrorsRootObject), (int)HttpStatusCode.BadRequest)]
[ProducesResponseType(typeof(string), (int)HttpStatusCode.NotFound)]
Expand Down Expand Up @@ -309,7 +309,7 @@ public IActionResult CreateCustomer([ModelBinder(typeof(JsonModelBinder<Customer
}

[HttpPut]
[Route("/api/customers/{id}")]
[Route("/api/customers/{id:int}")]
[ProducesResponseType(typeof(CustomersRootObject), (int)HttpStatusCode.OK)]
[ProducesResponseType(typeof(ErrorsRootObject), 422)]
[ProducesResponseType(typeof(ErrorsRootObject), (int)HttpStatusCode.BadRequest)]
Expand Down Expand Up @@ -429,7 +429,7 @@ public IActionResult UpdateCustomer([ModelBinder(typeof(JsonModelBinder<Customer
}

[HttpDelete]
[Route("/api/customers/{id}")]
[Route("/api/customers/{id:int}")]
[GetRequestsErrorInterceptorActionFilter]
[ProducesResponseType(typeof(void), (int)HttpStatusCode.OK)]
[ProducesResponseType(typeof(ErrorsRootObject), (int)HttpStatusCode.BadRequest)]
Expand Down
Loading