implement unmarshaling straight into MethodData
This commit is contained in:
parent
b29c64023f
commit
c108da9bb3
|
@ -2,7 +2,6 @@ package v1
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"encoding/json"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -149,7 +148,7 @@ type friendAddPOSTData struct {
|
||||||
// FriendsAddPOST allows for adding friends. Yup. Easy as that.
|
// FriendsAddPOST allows for adding friends. Yup. Easy as that.
|
||||||
func FriendsAddPOST(md common.MethodData) (r common.Response) {
|
func FriendsAddPOST(md common.MethodData) (r common.Response) {
|
||||||
d := friendAddPOSTData{}
|
d := friendAddPOSTData{}
|
||||||
err := json.Unmarshal(md.RequestData, &d)
|
err := md.RequestData.Unmarshal(&d)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
md.Err(err)
|
md.Err(err)
|
||||||
r = Err500
|
r = Err500
|
||||||
|
@ -220,7 +219,7 @@ func FriendsDelGET(md common.MethodData) common.Response {
|
||||||
// FriendsDelPOST allows for deleting friends.
|
// FriendsDelPOST allows for deleting friends.
|
||||||
func FriendsDelPOST(md common.MethodData) (r common.Response) {
|
func FriendsDelPOST(md common.MethodData) (r common.Response) {
|
||||||
d := friendAddPOSTData{}
|
d := friendAddPOSTData{}
|
||||||
err := json.Unmarshal(md.RequestData, &d)
|
err := md.RequestData.Unmarshal(&d)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
md.Err(err)
|
md.Err(err)
|
||||||
r = Err500
|
r = Err500
|
||||||
|
|
|
@ -3,7 +3,6 @@ package v1
|
||||||
import (
|
import (
|
||||||
"crypto/md5"
|
"crypto/md5"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/osuripple/api/common"
|
"github.com/osuripple/api/common"
|
||||||
|
@ -31,7 +30,7 @@ type tokenNewOutData struct {
|
||||||
// TokenNewPOST is the handler for POST /token/new.
|
// TokenNewPOST is the handler for POST /token/new.
|
||||||
func TokenNewPOST(md common.MethodData) (r common.Response) {
|
func TokenNewPOST(md common.MethodData) (r common.Response) {
|
||||||
data := tokenNewInData{}
|
data := tokenNewInData{}
|
||||||
err := json.Unmarshal(md.RequestData, &data)
|
err := md.RequestData.Unmarshal(&data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
r = ErrBadJSON
|
r = ErrBadJSON
|
||||||
return
|
return
|
||||||
|
|
|
@ -2,6 +2,7 @@ package common
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"encoding/json"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
@ -10,7 +11,7 @@ import (
|
||||||
type MethodData struct {
|
type MethodData struct {
|
||||||
User Token
|
User Token
|
||||||
DB *sql.DB
|
DB *sql.DB
|
||||||
RequestData []byte
|
RequestData RequestData
|
||||||
C *gin.Context
|
C *gin.Context
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,3 +24,14 @@ func (md MethodData) Err(err error) {
|
||||||
func (md MethodData) ID() int {
|
func (md MethodData) ID() int {
|
||||||
return md.User.UserID
|
return md.User.UserID
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RequestData is the body of a request. It is wrapped into this type
|
||||||
|
// to implement the Unmarshal function, which is just a shorthand to
|
||||||
|
// json.Unmarshal.
|
||||||
|
type RequestData []byte
|
||||||
|
|
||||||
|
// Unmarshal json-decodes Requestdata into a value. Basically a
|
||||||
|
// shorthand to json.Unmarshal.
|
||||||
|
func (r RequestData) Unmarshal(into interface{}) error {
|
||||||
|
return json.Unmarshal([]byte(r), into)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user