2018-04-12 13:13:56 +00:00
|
|
|
package login
|
|
|
|
|
2018-10-11 11:57:02 +00:00
|
|
|
import http "github.com/valyala/fasthttp"
|
2018-04-12 13:13:56 +00:00
|
|
|
|
|
|
|
// ParseUser create User structure from input url.Values.
|
2018-10-11 11:57:02 +00:00
|
|
|
func ParseUser(data interface{}) (*User, error) {
|
|
|
|
args := http.AcquireArgs()
|
|
|
|
defer http.ReleaseArgs(args)
|
2018-08-21 11:05:04 +00:00
|
|
|
|
2018-10-11 11:57:02 +00:00
|
|
|
switch d := data.(type) {
|
|
|
|
case *http.Args:
|
|
|
|
d.CopyTo(args)
|
|
|
|
http.ReleaseArgs(d)
|
|
|
|
case []byte:
|
|
|
|
args.ParseBytes(d)
|
|
|
|
case string:
|
|
|
|
args.Parse(d)
|
|
|
|
default:
|
|
|
|
return nil, ErrUnsupportedType
|
2018-04-12 13:13:56 +00:00
|
|
|
}
|
|
|
|
|
2018-10-11 11:57:02 +00:00
|
|
|
return &User{
|
|
|
|
ID: args.GetUintOrZero(KeyID),
|
|
|
|
AuthDate: int64(args.GetUintOrZero(KeyAuthDate)),
|
|
|
|
FirstName: string(args.Peek(KeyFirstName)),
|
|
|
|
Hash: string(args.Peek(KeyHash)),
|
|
|
|
LastName: string(args.Peek(KeyLastName)),
|
|
|
|
PhotoURL: string(args.Peek(KeyPhotoURL)),
|
|
|
|
Username: string(args.Peek(KeyUsername)),
|
|
|
|
}, nil
|
2018-04-12 13:13:56 +00:00
|
|
|
}
|