-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFeaturesAPIController.cs
81 lines (70 loc) · 3.07 KB
/
FeaturesAPIController.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using stark.Fundamentals.Models.Requests;
using stark.Web.Services;
using System.Web.Http;
using stark.Web.Models.Responses;
using stark.Web.Models;
namespace stark.Fundamentals.Controllers.api
{
//
[RoutePrefix("api/features")]
public class FeaturesApiController : ApiController
{
//CREATE
[Route(), HttpPost]
public HttpResponseMessage Add(FeatureCreateRequest model) // "public method named "Add" that returns an HtttpResponseMessage, that takes one parameter named "model" of type FeatureAddRequest"
{
if (!ModelState.IsValid)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
//instantiate a a 'feature' entity service object
FeaturesService feature = new FeaturesService();
ItemResponse <int> response = new ItemResponse<int>();
response.Item = feature.Create(model); //uses featuresService
return Request.CreateResponse(HttpStatusCode.OK, response);
}
//UPDATE
[Route("{Id:int}"), HttpPut]
public HttpResponseMessage Updates(FeatureUpdateRequest model) //binding to update request model.
{
// check data validation
if (!ModelState.IsValid) //ModelState == collection of errors, is NOT valid...
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); //...return a error response.
}
//invoke the service method and return a SuccessResponse model, no item response is being returned like the above Create() method.
FeaturesService feature = new FeaturesService(); // invoke the entity's service method
feature.Update(model); // feature to return a model.
return Request.CreateResponse(HttpStatusCode.OK, true);
}
//READ ALL No route, since it only needs the RoutePrefix
[Route(), HttpGet]
public HttpResponseMessage GetAll()
{
if (!ModelState.IsValid)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
ItemsResponse<Feature> response = new ItemsResponse<Feature>();
//response.Items = FeaturesService.GetAll();
return Request.CreateResponse(HttpStatusCode.OK, response);
}
////DELETE [DELETE/DELETE]
//[Route("{id:int}"), HttpDelete]
//public HttpResponseMessage Delete()
//{
// if (!ModelState.IsValid)
// {
// return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
// }
// ItemsResponse<FeaturesService> resp = new ItemsResponse<FeaturesSer>();
// resp.Items = FeaturesService.Delete();
// return Request.CreateResponse(HttpStatusCode.OK, resp);
//}
}
}