MCPcopy Index your code
hub / github.com/dnote/dnote / RemoveUser

Method RemoveUser

pkg/server/app/users.go:168–199  ·  view source on GitHub ↗

RemoveUser removes a user from the system Returns an error if the user has any notes or books

(email string)

Source from the content-addressed store, hash-verified

166// RemoveUser removes a user from the system
167// Returns an error if the user has any notes or books
168func (a *App) RemoveUser(email string) error {
169 // Find the user
170 user, err := a.GetUserByEmail(email)
171 if err != nil {
172 return err
173 }
174
175 // Check if user has any notes
176 var noteCount int64
177 if err := a.DB.Model(&database.Note{}).Where("user_id = ? AND deleted = ?", user.ID, false).Count(&noteCount).Error; err != nil {
178 return pkgErrors.Wrap(err, "counting notes")
179 }
180 if noteCount > 0 {
181 return ErrUserHasExistingResources
182 }
183
184 // Check if user has any books
185 var bookCount int64
186 if err := a.DB.Model(&database.Book{}).Where("user_id = ? AND deleted = ?", user.ID, false).Count(&bookCount).Error; err != nil {
187 return pkgErrors.Wrap(err, "counting books")
188 }
189 if bookCount > 0 {
190 return ErrUserHasExistingResources
191 }
192
193 // Delete user
194 if err := a.DB.Delete(&user).Error; err != nil {
195 return pkgErrors.Wrap(err, "deleting user")
196 }
197
198 return nil
199}
200
201// SignIn signs in a user
202func (a *App) SignIn(user *database.User) (*database.Session, error) {

Callers 2

userRemoveCmdFunction · 0.80
TestRemoveUserFunction · 0.80

Calls 1

GetUserByEmailMethod · 0.95

Tested by 1

TestRemoveUserFunction · 0.64