Made API handling better, removed unused components
This commit is contained in:
+10
-3
@@ -20,13 +20,20 @@ func SaveUserPreferences(c *middleware.Context, cmd m.SavePreferencesCommand) Re
|
||||
|
||||
}
|
||||
|
||||
func GetUserPreferences(c *middleware.Context) Response {
|
||||
// GET /api/user/prefs
|
||||
func GetUserPreferences(c *middleware.Context) {
|
||||
|
||||
query := m.GetPreferencesQuery{PrefId: c.UserId, PrefType: `user`}
|
||||
|
||||
if err := bus.Dispatch(&query); err != nil {
|
||||
return ApiError(500, "Failed to get user", err)
|
||||
c.JsonApiErr(500, "Failed to get preferences for user", err)
|
||||
}
|
||||
|
||||
return Json(200, query.Result)
|
||||
dto := m.PreferencesDTO{
|
||||
PrefId: query.Result.PrefId,
|
||||
PrefType: query.Result.PrefType,
|
||||
PrefData: query.Result.PrefData,
|
||||
}
|
||||
|
||||
c.JSON(200, dto)
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
|
||||
// Typed errors
|
||||
var (
|
||||
ErrPreferenceNotFound = errors.New("Preference not found")
|
||||
ErrPreferencesNotFound = errors.New("Preferences not found")
|
||||
)
|
||||
|
||||
type Preferences struct {
|
||||
@@ -23,7 +23,7 @@ type GetPreferencesQuery struct {
|
||||
PrefId int64
|
||||
PrefType string
|
||||
|
||||
Result PreferencesDTO
|
||||
Result *Preferences
|
||||
}
|
||||
|
||||
// ---------------------
|
||||
|
||||
@@ -22,10 +22,11 @@ func GetPreferences(query *m.GetPreferencesQuery) error {
|
||||
if resultsErr != nil {
|
||||
return resultsErr
|
||||
}
|
||||
query.Result = m.PreferencesDTO{
|
||||
PrefId: prefResults[0].PrefId,
|
||||
PrefType: prefResults[0].PrefType,
|
||||
PrefData: prefResults[0].PrefData,
|
||||
|
||||
if len(prefResults) > 0 {
|
||||
query.Result = &prefResults[0]
|
||||
} else {
|
||||
query.Result = new(m.Preferences)
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -45,15 +46,25 @@ func SavePreferences(cmd *m.SavePreferencesCommand) error {
|
||||
return resultsErr
|
||||
}
|
||||
|
||||
var matchedPref m.Preferences
|
||||
matchedPref = prefResults[0]
|
||||
matchedPref.PrefData = cmd.PrefData
|
||||
affectedRows, updateErr := sess.Id(matchedPref.Id).Update(&matchedPref)
|
||||
var savePref m.Preferences
|
||||
var affectedRows int64
|
||||
var saveErr error
|
||||
|
||||
if affectedRows == 0 {
|
||||
return m.ErrPreferenceNotFound
|
||||
if len(prefResults) == 0 {
|
||||
savePref.PrefId = cmd.PrefId
|
||||
savePref.PrefType = cmd.PrefType
|
||||
savePref.PrefData = cmd.PrefData
|
||||
affectedRows, saveErr = sess.Insert(&savePref)
|
||||
} else {
|
||||
savePref = prefResults[0]
|
||||
savePref.PrefData = cmd.PrefData
|
||||
affectedRows, saveErr = sess.Id(savePref.Id).Update(&savePref)
|
||||
}
|
||||
|
||||
return updateErr
|
||||
if affectedRows == 0 {
|
||||
return m.ErrPreferencesNotFound
|
||||
}
|
||||
|
||||
return saveErr
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user