Made API handling better, removed unused components

This commit is contained in:
utkarshcmu
2016-03-06 12:32:22 -08:00
parent 8f42bec270
commit 9c8d508247
9 changed files with 35 additions and 80 deletions
+10 -3
View File
@@ -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)
}
+2 -2
View File
@@ -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 -11
View File
@@ -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
})
}