implement unmarshaling straight into MethodData
This commit is contained in:
		@@ -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)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user