func (me SqlSessionStore) Save(session *model.Session) StoreChannel { storeChannel := make(StoreChannel) go func() { result := StoreResult{} if len(session.Id) > 0 { result.Err = model.NewLocAppError("SqlSessionStore.Save", "store.sql_session.save.existing.app_error", nil, "id="+session.Id) storeChannel <- result close(storeChannel) return } session.PreSave() if cur := <-me.CleanUpExpiredSessions(session.UserId); cur.Err != nil { l4g.Error(utils.T("store.sql_session.save.cleanup.error"), cur.Err) } if err := me.GetMaster().Insert(session); err != nil { result.Err = model.NewLocAppError("SqlSessionStore.Save", "store.sql_session.save.app_error", nil, "id="+session.Id+", "+err.Error()) } else { result.Data = session } storeChannel <- result close(storeChannel) }() return storeChannel }
func (me SqlSessionStore) Save(session *model.Session) StoreChannel { storeChannel := make(StoreChannel) go func() { result := StoreResult{} if len(session.Id) > 0 { result.Err = model.NewAppError("SqlSessionStore.Save", "Cannot update existing session", "id="+session.Id) storeChannel <- result close(storeChannel) return } session.PreSave() if cur := <-me.CleanUpExpiredSessions(session.UserId); cur.Err != nil { l4g.Error("Failed to cleanup sessions in Save err=%v", cur.Err) } if err := me.GetMaster().Insert(session); err != nil { result.Err = model.NewAppError("SqlSessionStore.Save", "We couldn't save the session", "id="+session.Id+", "+err.Error()) } else { result.Data = session } storeChannel <- result close(storeChannel) }() return storeChannel }
func (me SqlSessionStore) Save(session *model.Session) StoreChannel { storeChannel := make(StoreChannel, 1) go func() { result := StoreResult{} if len(session.Id) > 0 { result.Err = model.NewLocAppError("SqlSessionStore.Save", "store.sql_session.save.existing.app_error", nil, "id="+session.Id) storeChannel <- result close(storeChannel) return } session.PreSave() if cur := <-me.CleanUpExpiredSessions(session.UserId); cur.Err != nil { l4g.Error(utils.T("store.sql_session.save.cleanup.error"), cur.Err) } tcs := me.Team().GetTeamsForUser(session.UserId) if err := me.GetMaster().Insert(session); err != nil { result.Err = model.NewLocAppError("SqlSessionStore.Save", "store.sql_session.save.app_error", nil, "id="+session.Id+", "+err.Error()) return } else { result.Data = session } if rtcs := <-tcs; rtcs.Err != nil { result.Err = model.NewLocAppError("SqlSessionStore.Save", "store.sql_session.save.app_error", nil, "id="+session.Id+", "+rtcs.Err.Error()) return } else { tempMembers := rtcs.Data.([]*model.TeamMember) session.TeamMembers = make([]*model.TeamMember, 0, len(tempMembers)) for _, tm := range tempMembers { if tm.DeleteAt == 0 { session.TeamMembers = append(session.TeamMembers, tm) } } } storeChannel <- result close(storeChannel) }() return storeChannel }