示例#1
0
        public async Task <ActionResult <JwtRefreshDTO> > RefreshToken()
        {
            var refreshToken = DecodeHeader.GetRefreshToken(context.Request.Headers);

            return(await _refreshService.RefreshJWT(refreshToken.refreshToken.id, refreshToken.token));
        }
示例#2
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/", async context =>
                {
                    await context.Response.WriteAsync("I'm alive");
                });
                endpoints.MapPost("/addmessage", async context =>
                {
                    MyDbContext _context = new MyDbContext();
                    var add = new AddMessage();

                    var dto = await context.Request.ReadFromJsonAsync <NewMessageDTO>();
                    var jwt = DecodeHeader.GetJwtToken(context.Request.Headers);

                    var result = await add.Add(dto, jwt.id, _context);
                    await context.Response.WriteAsJsonAsync(result);
                });
                endpoints.MapPost("/addroom", async context =>
                {
                    MyDbContext _context = new MyDbContext();
                    var add = new AddRoom();

                    var dto = await context.Request.ReadFromJsonAsync <NewRoomDTO>();
                    var jwt = DecodeHeader.GetJwtToken(context.Request.Headers);

                    if (jwt.admin == 0)
                    {
                        throw new Exception("You are not allowed to add a new room");
                    }

                    var result = await add.Add(dto, jwt.id, _context);
                });
                endpoints.MapPost("/editmessage", async context =>
                {
                    MyDbContext _context = new MyDbContext();
                    var edit             = new EditMessage();

                    var dto = await context.Request.ReadFromJsonAsync <EditMessageDTO>();
                    var jwt = DecodeHeader.GetJwtToken(context.Request.Headers);

                    var result = await edit.Edit(dto, jwt.id, _context);
                    await context.Response.WriteAsJsonAsync(result);
                });
                endpoints.MapPost("/editroom", async context =>
                {
                    MyDbContext _context = new MyDbContext();
                    var edit             = new EditRoom();

                    var dto = await context.Request.ReadFromJsonAsync <EditRoomDTO>();
                    var jwt = DecodeHeader.GetJwtToken(context.Request.Headers);

                    if (jwt.admin == 0)
                    {
                        throw new Exception("You are not allowed to edit room details");
                    }

                    var result = await edit.Edit(dto, jwt.id, _context);
                    await context.Response.WriteAsJsonAsync(result);
                });
                endpoints.MapPost("/deletemessage", async context =>
                {
                    MyDbContext _context = new MyDbContext();
                    var delete           = new DeleteMessage();

                    var dto = await context.Request.ReadFromJsonAsync <DeleteMessageDTO>();
                    var jwt = DecodeHeader.GetJwtToken(context.Request.Headers);

                    var result = await delete.Delete(dto.MessageId, jwt.id, _context);
                    await context.Response.WriteAsJsonAsync(result);
                });
                endpoints.MapPost("/closeroom", async context =>
                {
                    MyDbContext _context = new MyDbContext();
                    var close            = new CloseRoom();

                    var dto = await context.Request.ReadFromJsonAsync <CloseOpenRoomDTO>();
                    var jwt = DecodeHeader.GetJwtToken(context.Request.Headers);

                    if (jwt.admin == 0)
                    {
                        throw new Exception("You are not allowed to close a room");
                    }

                    var result = await close.Close(dto.RoomId, jwt.id, _context);
                    await context.Response.WriteAsJsonAsync(result);
                });
                endpoints.MapPost("/openroom", async context =>
                {
                    MyDbContext _context = new MyDbContext();
                    var open             = new OpenRoom();

                    var dto = await context.Request.ReadFromJsonAsync <CloseOpenRoomDTO>();
                    var jwt = DecodeHeader.GetJwtToken(context.Request.Headers);

                    if (jwt.admin == 0)
                    {
                        throw new Exception("You are not allowed to open a room");
                    }

                    var result = await open.Open(dto.RoomId, jwt.id, _context);
                    await context.Response.WriteAsJsonAsync(result);
                });
                endpoints.MapPost("/star", async context =>
                {
                    MyDbContext _context = new MyDbContext();
                    var star             = new StarMessage();

                    var dto = await context.Request.ReadFromJsonAsync <StarMessageDTO>();
                    var jwt = DecodeHeader.GetJwtToken(context.Request.Headers);

                    await star.Star(dto.MessageId, jwt.id, _context);
                    await context.Response.WriteAsJsonAsync(StatusCodes.Status200OK);
                });
                endpoints.MapPost("/unstar", async context =>
                {
                    MyDbContext _context = new MyDbContext();
                    var star             = new UnStarMessage();

                    var dto = await context.Request.ReadFromJsonAsync <StarMessageDTO>();
                    var jwt = DecodeHeader.GetJwtToken(context.Request.Headers);

                    await star.UnStar(dto.MessageId, jwt.id, _context);
                    await context.Response.WriteAsJsonAsync(StatusCodes.Status200OK);
                });
            });
        }