Add items crud to api
This commit is contained in:
@@ -14,14 +14,12 @@ public class AuthController : ControllerBase {
|
||||
private readonly UserManager<User> userManager_;
|
||||
private readonly SignInManager<User> signInManager_;
|
||||
|
||||
private readonly UserService users_;
|
||||
private readonly JwtService jwt_;
|
||||
|
||||
public AuthController(UserManager<User> userManager, SignInManager<User> signInManager, UserService users, JwtService jwt) {
|
||||
public AuthController(UserManager<User> userManager, SignInManager<User> signInManager, JwtService jwt) {
|
||||
|
||||
userManager_ = userManager;
|
||||
signInManager_ = signInManager;
|
||||
users_ = users;
|
||||
jwt_ = jwt;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,39 +7,39 @@ using agologumApi.Services;
|
||||
|
||||
[ApiController]
|
||||
[Route("api/[controller]")]
|
||||
public class UsersController : ControllerBase {
|
||||
public class ItemsController : ControllerBase {
|
||||
|
||||
private readonly UserService service_;
|
||||
private readonly ItemService service_;
|
||||
|
||||
public UsersController(UserService service) {
|
||||
public ItemsController(ItemService service) {
|
||||
service_ = service;
|
||||
}
|
||||
|
||||
[AllowAnonymous] // accessible if not authorized
|
||||
[HttpGet]
|
||||
public async Task<ActionResult<List<User>>> getUsers() {
|
||||
public async Task<ActionResult<List<Item>>> getItemss() {
|
||||
return Ok(await service_.GetAll());
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpGet("{id:int}")]
|
||||
public async Task<ActionResult<User>> getUser(int id) {
|
||||
public async Task<ActionResult<Item>> getItem(int id) {
|
||||
|
||||
var user = await service_.Get(id);
|
||||
var item = await service_.Get(id);
|
||||
|
||||
if (user == null) return NotFound();
|
||||
if (item == null) return NotFound();
|
||||
|
||||
return Ok(user);
|
||||
return Ok(item);
|
||||
}
|
||||
|
||||
[Authorize] // testing the authorization
|
||||
[HttpPost]
|
||||
public async Task<ActionResult<User>> createUser(User user) {
|
||||
public async Task<ActionResult<Item>> createItem(Item item) {
|
||||
|
||||
var created = await service_.Create(user);
|
||||
var created = await service_.Create(item);
|
||||
|
||||
return CreatedAtAction(
|
||||
nameof(getUser),
|
||||
nameof(getItem),
|
||||
new { id = created.Id },
|
||||
created
|
||||
);
|
||||
@@ -47,9 +47,9 @@ public class UsersController : ControllerBase {
|
||||
|
||||
[Authorize]
|
||||
[HttpPut("{id}")]
|
||||
public async Task<ActionResult<User>> updateUser(int id, User user) {
|
||||
public async Task<ActionResult<Item>> updateItem(int id, Item item) {
|
||||
|
||||
var updated = await service_.Update(user);
|
||||
var updated = await service_.Update(item);
|
||||
|
||||
if (updated == null) return NotFound();
|
||||
|
||||
@@ -58,7 +58,7 @@ public class UsersController : ControllerBase {
|
||||
|
||||
[Authorize]
|
||||
[HttpDelete("{id}")]
|
||||
public async Task<ActionResult> deleteUser(int id) {
|
||||
public async Task<ActionResult> deleteItem(int id) {
|
||||
|
||||
var success = await service_.Delete(id);
|
||||
|
||||
@@ -10,4 +10,7 @@ public class AppDbContext : IdentityDbContext<User> {
|
||||
|
||||
}
|
||||
|
||||
// Db set for each model besides Users (DbSet<template> is already defined in IdenityDbContext<template>)
|
||||
public DbSet<Item> Items { get; set; }
|
||||
|
||||
}
|
||||
@@ -13,3 +13,10 @@ public class LoginDto {
|
||||
public string Password { get; set; } = "";
|
||||
|
||||
}
|
||||
|
||||
public class ItemDto {
|
||||
|
||||
public String Name { get; set; } = "";
|
||||
public String Description { get; set; } = "";
|
||||
|
||||
}
|
||||
|
||||
12
api/src/Models/Item.cs
Normal file
12
api/src/Models/Item.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
namespace agologumApi.Models;
|
||||
|
||||
public class Item {
|
||||
|
||||
public int Id { get; set; }
|
||||
public String Name { get; set; } = "";
|
||||
public String Description { get; set; } = "";
|
||||
public DateTime CreatedAt { get; set; }
|
||||
public DateTime LastEditedAt { get; set; }
|
||||
|
||||
};
|
||||
51
api/src/Services/ItemService.cs
Normal file
51
api/src/Services/ItemService.cs
Normal file
@@ -0,0 +1,51 @@
|
||||
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
using agologumApi.Models;
|
||||
|
||||
namespace agologumApi.Services;
|
||||
|
||||
public class ItemService {
|
||||
|
||||
private readonly AppDbContext db_;
|
||||
|
||||
public ItemService(AppDbContext db) {
|
||||
db_ = db;
|
||||
}
|
||||
|
||||
public async Task<List<Item>> GetAll() {
|
||||
return await db_.Items.ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<Item?> Get(int id) {
|
||||
return await db_.Items.FindAsync(id);
|
||||
}
|
||||
|
||||
public async Task<Item?> Get(string name) {
|
||||
return await db_.Items.FirstOrDefaultAsync(u => u.Name == name);
|
||||
}
|
||||
|
||||
public async Task<Item> Create(Item item) {
|
||||
db_.Items.Add(item);
|
||||
await db_.SaveChangesAsync();
|
||||
return item;
|
||||
}
|
||||
|
||||
public async Task<Item> Update(Item item) {
|
||||
db_.Items.Update(item);
|
||||
await db_.SaveChangesAsync();
|
||||
return item;
|
||||
}
|
||||
|
||||
public async Task<bool> Delete(int id) {
|
||||
Item? item = await db_.Items.FindAsync(id);
|
||||
if(item != null) {
|
||||
db_.Items.Remove(item);
|
||||
await db_.SaveChangesAsync();
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
using agologumApi.Models;
|
||||
|
||||
namespace agologumApi.Services;
|
||||
|
||||
public class UserService {
|
||||
|
||||
private readonly AppDbContext db_;
|
||||
|
||||
public UserService(AppDbContext db) {
|
||||
db_ = db;
|
||||
}
|
||||
|
||||
public async Task<List<User>> GetAll() {
|
||||
return await db_.Users.ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<User?> Get(int id) {
|
||||
return await db_.Users.FindAsync(id);
|
||||
}
|
||||
|
||||
public async Task<User?> Get(string username) {
|
||||
return await db_.Users.FirstOrDefaultAsync(u => u.UserName == username);
|
||||
}
|
||||
|
||||
public async Task<User> Create(User user) {
|
||||
db_.Users.Add(user);
|
||||
await db_.SaveChangesAsync();
|
||||
return user;
|
||||
}
|
||||
|
||||
public async Task<User> Update(User user) {
|
||||
db_.Users.Update(user);
|
||||
await db_.SaveChangesAsync();
|
||||
return user;
|
||||
}
|
||||
|
||||
public async Task<bool> Delete(int id) {
|
||||
User? user = await db_.Users.FindAsync(id);
|
||||
if(user != null) {
|
||||
db_.Users.Remove(user);
|
||||
await db_.SaveChangesAsync();
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user