Commit f2268898 authored by Eric Dieckman's avatar Eric Dieckman
Browse files

Add firewall controller

parent 921534b7
Loading
Loading
Loading
Loading
+77 −0
Original line number Diff line number Diff line
using Cals.Visor.Infrastructure.Contexts;
using Cals.Visor.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;

namespace Cals.Visor.Api.Controllers;

[Route("[controller]")]
[ApiController]
public class PaloAltoFirewallsController : ControllerBase
{
    private readonly ApplicationDbContext _context;

    public PaloAltoFirewallsController(ApplicationDbContext context) => _context = context;

    // GET: /paloaltofirewalls
    [ProducesResponseType<IList<PaloAltoFirewall>>(StatusCodes.Status200OK)]
    [HttpGet(Name = "GetAllPaloAltoFirewalls")]
    public async Task<IActionResult> GetAllAsync()
    {
        var result = await _context.PaloAltoFirewalls
            .Where(e => e.IsActive == true)
            .ToListAsync();

        return Ok(result);
    }

    // GET: /paloaltofirewalls/1
    [ProducesResponseType<PaloAltoFirewall>(StatusCodes.Status200OK)]
    [ProducesResponseType(StatusCodes.Status404NotFound)]
    [HttpGet("{firewallId:long}", Name = "GetPaloAltoFirewallById")]
    public async Task<IActionResult> GetByIdAsync(long firewallId)
    {
        PaloAltoFirewall? result = await _context.PaloAltoFirewalls
            .Where(e => e.FirewallId == firewallId)
            .FirstOrDefaultAsync();

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

        return Ok(result);
    }

    // POST: /paloaltofirewalls
    [ProducesResponseType<PaloAltoFirewall>(StatusCodes.Status201Created)]
    [HttpPost(Name = "CreateNewPaloAltoFirewall")]
    public async Task<IActionResult> CreateNewAsync(PaloAltoFirewall data)
    {
        _context.Add(data);
        await _context.SaveChangesAsync();

        return CreatedAtRoute("GetPaloAltoFirewallById", new { firewallId = data.FirewallId }, data);
    }

    // PUT: /paloaltofirewalls/2
    [ProducesResponseType<PaloAltoFirewall>(StatusCodes.Status200OK)]
    [ProducesResponseType(StatusCodes.Status404NotFound)]
    [HttpPut("{firewallId:long}", Name = "UpdatePaloAltoFirewall")]
    public async Task<IActionResult> UpdateAsync(long firewallId, PaloAltoFirewall data)
    {
        PaloAltoFirewall? entity = await _context.PaloAltoFirewalls
            .Where(e => e.FirewallId == firewallId)
            .FirstOrDefaultAsync();

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

        entity.IsActive = data.IsActive;
        entity.Notes = data.Notes;
        entity.Name = data.Name;
        entity.Hostname = data.Hostname;
        entity.HasVsys = data.HasVsys;
        await _context.SaveChangesAsync();

        return Ok(entity);
    }
}
+4 −4
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@ public class SubnetsController : ControllerBase

    public SubnetsController(ApplicationDbContext context) => _context = context;

    // GET: /api/subnets
    // GET: /subnets
    [ProducesResponseType<IList<Subnet>>(StatusCodes.Status200OK)]
    [HttpGet(Name = "GetAllSubnets")]
    public async Task<IActionResult> GetAllAsync()
@@ -26,7 +26,7 @@ public class SubnetsController : ControllerBase
        return Ok(result);
    }

    // GET: /api/subnets/1
    // GET: /subnets/1
    [ProducesResponseType<Subnet>(StatusCodes.Status200OK)]
    [ProducesResponseType(StatusCodes.Status404NotFound)]
    [HttpGet("{subnetId:long}", Name = "GetSubnetById")]
@@ -42,7 +42,7 @@ public class SubnetsController : ControllerBase
        return Ok(result);
    }

    // POST: /api/subnets
    // POST: /subnets
    [ProducesResponseType<Subnet>(StatusCodes.Status201Created)]
    [HttpPost(Name = "CreateNewSubnet")]
    public async Task<IActionResult> CreateNewAsync(Subnet data)
@@ -53,7 +53,7 @@ public class SubnetsController : ControllerBase
        return CreatedAtRoute("GetSubnetById", new { subnetId = data.SubnetId }, data);
    }

    // PUT: /api/subnets/2
    // PUT: /subnets/2
    [ProducesResponseType<Subnet>(StatusCodes.Status200OK)]
    [ProducesResponseType(StatusCodes.Status404NotFound)]
    [HttpPut("{subnetId:long}", Name = "UpdateSubnet")]