public async Task <ActionResult <DateItemResponse> > Create(DateItemInput _input) { try{ string bearerToken = Request.Headers["Authorization"].ToString().Split(" ").Last(); int id = int.Parse(jwtService.getUserId(bearerToken)); DateItem result = await datetimeService.createItem(_input, id); return(CreatedAtAction("Create", new DateItemResponse { isSuccess = true, payload = new DateItemResponseData { item = result } })); }catch (UnauthorizedAccessException ex) { return(Unauthorized(new DateItemResponse { isSuccess = false, error = new ApiError { msg = ex.Message } })); }catch (Exception ex) { return(BadRequest(new DateItemResponse { isSuccess = false, error = new ApiError { msg = ex.Message } })); } }
public async Task <DateItem> createItem(DateItemInput _input, int userId) { using (NpgsqlConnection connection = new NpgsqlConnection(config.GetConnectionString("postgres"))) { string sql = "INSERT INTO \"date_item\" (user_id,title,date) VALUES( @userId, @title, @date) RETURNING*"; DateItem result = await connection.QueryFirstOrDefaultAsync <DateItem>(sql, new { userId = userId, title = _input.title, date = _input.date }); if (result == null) { throw new InvalidOperationException("Sql returned num of rows affected as 0"); } return(result); } }