public async Task <IActionResult> UpdateThumbnail( [FromForm] UpdateThumbnailRequest updateThumbnail, int chatId) { try { var thisUserId = ClaimsExtractor.GetUserIdClaim(User.Claims); var result = await mChatsService.UpdateThumbnail(chatId, updateThumbnail.thumbnail, thisUserId); return(Ok(new ResponseApiModel <UpdateThumbnailResponse> { IsSuccessfull = true, Response = result })); } catch (InvalidDataException ex) { return(BadRequest(new ResponseApiModel <bool> { IsSuccessfull = false, ErrorMessage = ex.Message })); } catch (UnauthorizedAccessException ex) { return(StatusCode((int)HttpStatusCode.Forbidden, new ResponseApiModel <bool> { IsSuccessfull = false, ErrorMessage = ex.Message })); } catch (KeyNotFoundException ex) { return(NotFound(new ResponseApiModel <bool> { IsSuccessfull = false, ErrorMessage = ex.Message })); } catch (Exception) { return(StatusCode((int)HttpStatusCode.InternalServerError, new ResponseApiModel <bool> { IsSuccessfull = false })); } }
public static async Task OnCanvasRequest(Microsoft.AspNetCore.Http.HttpContext e, DbServer s, DbUser u, int tribe_id, string next) { //Find canvas if (!ObjectId.TryParse(next, out ObjectId id)) { throw new StandardError("Canvas Not Found", StandardErrorCode.NotFound); } DbCanvas c = await Program.connection.LoadCanvasData(id); if (c == null) { throw new StandardError("Canvas Not Found", StandardErrorCode.NotFound); } //Get request method var method = Program.FindRequestMethod(e); //Act from the method if (method == RequestHttpMethod.get) { //Write response await Program.QuickWriteJsonToDoc(e, ConvertCanvas(c)); } else if (method == RequestHttpMethod.post) { //Check scope await Program.CheckTokenScope(u, null); //Rename the canvas; decode request CanvasCreateRequest request = Program.DecodePostBody <CanvasCreateRequest>(e); //Set await c.RenameCanvas(Program.connection, request.name, request.color); //Send RPC message SendRPCMessage(c, s, u, tribe_id, RPCPayloadModifyCanvas.RPCPayloadModifyCanvas_CanvasChange.Modify); //Write response await Program.QuickWriteJsonToDoc(e, ConvertCanvas(c)); } else if (method == RequestHttpMethod.delete) { //Check scope await Program.CheckTokenScope(u, null); //Delete canvas await c.DeleteCanvas(Program.connection); //Send RPC message SendRPCMessage(c, s, u, tribe_id, RPCPayloadModifyCanvas.RPCPayloadModifyCanvas_CanvasChange.Delete); //Write response await Program.QuickWriteJsonToDoc(e, ConvertCanvas(c)); } else if (method == RequestHttpMethod.put) { //Check scope await Program.CheckTokenScope(u, null); //We'll update the thumbnail; Decode the request UpdateThumbnailRequest request = Program.DecodePostBody <UpdateThumbnailRequest>(e); //Try to find DbUserContent uc = await Program.connection.GetUserContentByToken(request.token); if (uc == null) { throw new StandardError("Token Not Valid", StandardErrorCode.InvalidInput); } if (uc.application_id != CANVAS_THUMBNAIL_APPLICATION_ID) { throw new StandardError("Specified User Content Application ID Mismatch", StandardErrorCode.InvalidInput); } //Update await c.SetNewThumbnail(Program.connection, uc); //Send RPC message SendRPCMessage(c, s, u, tribe_id, RPCPayloadModifyCanvas.RPCPayloadModifyCanvas_CanvasChange.Modify); //Write response await Program.QuickWriteJsonToDoc(e, ConvertCanvas(c)); } else { throw new StandardError("Unexpected method.", StandardErrorCode.BadMethod); } }