88 lines
4.0 KiB
C#
88 lines
4.0 KiB
C#
using Band.Models;
|
|
using Band.Services;
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace Band.Controllers;
|
|
|
|
[ApiController]
|
|
[Route("api/v1/[controller]")]
|
|
public class BandController(BandService pushPostService, Dictionary<string, Token> tokens) : ControllerBase {
|
|
|
|
private readonly BandService _BandService = pushPostService;
|
|
private readonly Dictionary<string, Token> _Tokens = tokens;
|
|
|
|
[HttpGet("display")]
|
|
public IActionResult Get(string code) {
|
|
Token? token = _BandService.GetToken(code);
|
|
if (token is null) {
|
|
if (_Tokens is not null) {
|
|
_ = _BandService.GetAuthorizationCode();
|
|
}
|
|
return BadRequest("Unable to get token");
|
|
}
|
|
_Tokens.Add(code, token);
|
|
return Content(code, "text/plain");
|
|
}
|
|
|
|
[HttpGet("bands")]
|
|
public IActionResult Bands() {
|
|
Models.Bands.Root? result = _BandService.GetBands(_Tokens);
|
|
return result is null ? _Tokens.Count == 0 ? BadRequest("Tokens is empty!") : BadRequest("Unable to get bands!") : Ok(result);
|
|
}
|
|
|
|
[HttpGet("{band_key}/profile")]
|
|
public IActionResult Profile(string band_key) {
|
|
Models.Profile.Root? result = _BandService.GetProfile(_Tokens, band_key);
|
|
return result is null ? _Tokens.Count == 0 ? BadRequest("Tokens is empty!") : BadRequest("Unable to get profile!") : Ok(result);
|
|
}
|
|
|
|
[HttpGet("{band_key}/posts")]
|
|
public IActionResult Posts(string band_key) {
|
|
Models.Posts.Root? result = _BandService.GetPosts(_Tokens, band_key);
|
|
return result is null ? _Tokens.Count == 0 ? BadRequest("Tokens is empty!") : BadRequest("Unable to get posts!") : Ok(result);
|
|
}
|
|
|
|
[HttpGet("{band_key}/{post_key}/get-post")]
|
|
public IActionResult GetPost(string band_key, string post_key) {
|
|
Models.Post.Root? result = _BandService.GetPost(_Tokens, band_key, post_key);
|
|
return result is null ? _Tokens.Count == 0 ? BadRequest("Tokens is empty!") : BadRequest("Unable to get post!") : Ok(result);
|
|
}
|
|
|
|
[HttpGet("{band_key}/{post_key}/comments")]
|
|
public IActionResult Comments(string band_key, string post_key, string sort = "recent") {
|
|
Models.Comments.Root? result = _BandService.GetComments(_Tokens, band_key, post_key, sort);
|
|
return result is null ? _Tokens.Count == 0 ? BadRequest("Tokens is empty!") : BadRequest("Unable to get comments!") : Ok(result);
|
|
}
|
|
|
|
[HttpGet("{band_key}/albums")]
|
|
public IActionResult Albums(string band_key) {
|
|
Models.Albums.Root? result = _BandService.GetAlbums(_Tokens, band_key);
|
|
return result is null ? _Tokens.Count == 0 ? BadRequest("Tokens is empty!") : BadRequest("Unable to get albums!") : Ok(result);
|
|
}
|
|
|
|
[HttpGet("{band_key}/photos")]
|
|
public IActionResult Photos(string band_key, string photo_album_key) {
|
|
Models.Photos.Root? result = _BandService.GetPhotos(_Tokens, band_key, photo_album_key);
|
|
return result is null ? _Tokens.Count == 0 ? BadRequest("Tokens is empty!") : BadRequest("Unable to get photos!") : Ok(result);
|
|
}
|
|
|
|
[HttpGet("{band_key}/permissions")]
|
|
public IActionResult Permissions(string band_key, string permissions) {
|
|
Models.Permissions.Root? result = _BandService.GetPermissions(_Tokens, band_key, permissions);
|
|
return result is null ? _Tokens.Count == 0 ? BadRequest("Tokens is empty!") : BadRequest("Unable to get permissions!") : Ok(result);
|
|
}
|
|
|
|
[HttpGet("{band_key}/post")]
|
|
public IActionResult Post(string band_key, string message) {
|
|
Root? result = _BandService.WritePost(_Tokens, band_key, message);
|
|
return result is null ? _Tokens.Count == 0 ? BadRequest("Tokens is empty!") : BadRequest("Unable to post message!") : Ok(result);
|
|
}
|
|
|
|
[HttpGet("{band_key}/post-comment")]
|
|
public IActionResult WritePostComment(string band_key, string post_key, string message) {
|
|
Root? result = _BandService.WritePostComment(_Tokens, band_key, post_key, message);
|
|
return result is null ? _Tokens.Count == 0 ? BadRequest("Tokens is empty!") : BadRequest("Unable to post message!") : Ok(result);
|
|
}
|
|
|
|
} |