(&mut self, optimistic_session_id: &str, session: &SessionInfo)
| 2946 | } |
| 2947 | |
| 2948 | fn promote_optimistic_session(&mut self, optimistic_session_id: &str, session: &SessionInfo) { |
| 2949 | let mut session_ctx = self.context.session.write(); |
| 2950 | let optimistic_messages = session_ctx |
| 2951 | .messages |
| 2952 | .remove(optimistic_session_id) |
| 2953 | .unwrap_or_default(); |
| 2954 | let optimistic_status = session_ctx.session_status.remove(optimistic_session_id); |
| 2955 | let optimistic_diff = session_ctx.session_diff.remove(optimistic_session_id); |
| 2956 | let optimistic_todos = session_ctx.todos.remove(optimistic_session_id); |
| 2957 | let optimistic_revert = session_ctx.revert.remove(optimistic_session_id); |
| 2958 | session_ctx.sessions.remove(optimistic_session_id); |
| 2959 | |
| 2960 | let real_session_id = session.id.clone(); |
| 2961 | session_ctx.upsert_session(map_api_session(session)); |
| 2962 | if !optimistic_messages.is_empty() { |
| 2963 | session_ctx |
| 2964 | .messages |
| 2965 | .insert(real_session_id.clone(), optimistic_messages); |
| 2966 | } |
| 2967 | if let Some(status) = optimistic_status { |
| 2968 | session_ctx |
| 2969 | .session_status |
| 2970 | .insert(real_session_id.clone(), status); |
| 2971 | } |
| 2972 | if let Some(diff) = optimistic_diff { |
| 2973 | session_ctx |
| 2974 | .session_diff |
| 2975 | .insert(real_session_id.clone(), diff); |
| 2976 | } |
| 2977 | if let Some(todos) = optimistic_todos { |
| 2978 | session_ctx.todos.insert(real_session_id.clone(), todos); |
| 2979 | } |
| 2980 | if let Some(revert) = optimistic_revert { |
| 2981 | session_ctx.revert.insert(real_session_id, revert); |
| 2982 | } |
| 2983 | } |
| 2984 | |
| 2985 | fn append_optimistic_user_message( |
| 2986 | &mut self, |
no test coverage detected