Documentation ¶
Overview ¶
Package httpUser provides a HTTP client to an external user service that can respond to HTTP requests defined here.
Index ¶
- Variables
- type AuthenticateRequest
- type AuthenticateResponse
- type ChangeEmailRequest
- type Client
- func (c Client) Authenticate(ref, password string) (u *user.User, err error)
- func (c Client) ChangeEmail(ref, token string) (u *user.User, err error)
- func (c Client) CreateUser(o *user.Options) (u *user.User, err error)
- func (c Client) DeleteUser(ref string) (u *user.User, err error)
- func (c Client) EmailChangeToken(ref, email string) (token string, err error)
- func (c Client) RegisterUser(o *user.Options, password string, emailValidationDeadline time.Time) (u *user.User, emailValidationToken string, err error)
- func (c Client) RequestEmailChange(ref, email string, validationDeadline time.Time) (token string, err error)
- func (c Client) RequestPasswordReset(ref string) (token string, err error)
- func (c Client) ResetPassword(token, password string) (err error)
- func (c Client) SetPassword(ref string, password string) (err error)
- func (c Client) UpdateUser(ref string, o *user.Options) (u *user.User, err error)
- func (c Client) User(ref string) (u *user.User, err error)
- func (c Client) UserByEmail(email string) (u *user.User, err error)
- func (c Client) UserByID(id string) (u *user.User, err error)
- func (c Client) UserByUsername(username string) (u *user.User, err error)
- func (c Client) UsersByEmail(startEmail string, limit int) (page *user.UsersPage, err error)
- func (c Client) UsersByID(startID string, limit int) (page *user.UsersPage, err error)
- func (c Client) UsersByUsername(startUsername string, limit int) (page *user.UsersPage, err error)
- type EmailChangeTokenResponse
- type RegisterUserRequest
- type RegisterUserResponse
- type RequestEmailChangeRequest
- type RequestEmailChangeResponse
- type RequestPasswordResetResponse
- type ResetPasswordRequest
- type SetPasswordRequest
Constants ¶
This section is empty.
Variables ¶
var ( ErrUserNotFound = errorRegistry.MustAddMessageError(1000, "User Not Found") ErrSaltNotFound = errorRegistry.MustAddMessageError(1001, "Salt Not Found") ErrPasswordUsed = errorRegistry.MustAddMessageError(1002, "Password Already Used") ErrUsernameMissing = errorRegistry.MustAddMessageError(1100, "Username Missing") ErrUsernameInvalid = errorRegistry.MustAddMessageError(1101, "Username Invalid") ErrUsernameExists = errorRegistry.MustAddMessageError(1102, "Username Exists") ErrEmailMissing = errorRegistry.MustAddMessageError(1200, "Email Missing") ErrEmailInvalid = errorRegistry.MustAddMessageError(1201, "Email Invalid") ErrEmailExists = errorRegistry.MustAddMessageError(1202, "Email Exists") ErrEmailChangeEmailNotAvaliable = errorRegistry.MustAddMessageError(1300, "Email Not Available For Change") ErrEmailValidateTokenNotFound = errorRegistry.MustAddMessageError(1301, "Email Validation Token Not Found") ErrEmailValidateTokenInvalid = errorRegistry.MustAddMessageError(1302, "Email Validation Token Invalid") ErrEmailValidateTokenExpired = errorRegistry.MustAddMessageError(1303, "Email Validation Token Expired") ErrPasswordResetTokenNotFound = errorRegistry.MustAddMessageError(1400, "Password Reset Token Not Found") ErrPasswordResetTokenExpired = errorRegistry.MustAddMessageError(1401, "Password Reset Token Expired") )
Errors that are returned from the HTTP server.
Functions ¶
This section is empty.
Types ¶
type AuthenticateRequest ¶
type AuthenticateRequest struct {
Password string `json:"password"`
}
AuthenticateRequest is a structure that is passed as JSON-encoded body to Authenticate HTTP request.
type AuthenticateResponse ¶
AuthenticateResponse is expected structure of JSON-encoded response body for Authenticate HTTP request.
type ChangeEmailRequest ¶
type ChangeEmailRequest struct {
Token string `json:"token"`
}
ChangeEmailRequest is a structure that is passed as JSON-encoded body to ChangeEmail HTTP request.
type Client ¶ added in v0.5.2
type Client struct {
*apiClient.Client
}
Client implements gopherpit.com/gopherpit/services/user.Service interface.
func NewClient ¶ added in v0.5.2
func NewClient(c *apiClient.Client) *Client
NewClient creates a new Client.
func (Client) Authenticate ¶ added in v0.5.2
Authenticate validates a password of an existing User by making a HTTP POST request to {Client.Endpoint}/users/{ref}/authenticate. Request body is a JSON-encoded AuthenticateRequest instance. Expected response body is a JSON-encoded instance of AuthenticateResponse.
func (Client) ChangeEmail ¶ added in v0.5.2
ChangeEmail changes an email of an existing User only if provided token is valid by making a HTTP POST request to {Client.Endpoint}/users/{ref}/email-change. Request body is a JSON-encoded ChangeEmailRequest instance.
func (Client) CreateUser ¶ added in v0.5.2
CreateUser creates a new User instance by making a HTTP POST request to {Client.Endpoint}/users. Post body is a JSON-encoded user.Options instance.
func (Client) DeleteUser ¶ added in v0.5.2
DeleteUser deletes an existing User by making a HTTP DELETE request to {Client.Endpoint}/users/{ref}.
func (Client) EmailChangeToken ¶ added in v0.5.2
EmailChangeToken retrieves a token to change an email, if it exists, by making a HTTP GET request to {Client.Endpoint}/users/{ref}/email-change/{email}.
func (Client) RegisterUser ¶ added in v0.5.2
func (c Client) RegisterUser(o *user.Options, password string, emailValidationDeadline time.Time) (u *user.User, emailValidationToken string, err error)
RegisterUser combines CreateUser SetPassword and RequestEmailChange into a single transaction to provide more convenient method for adding new users by making a HTTP POST request to {Client.Endpoint}/register. Request body is a JSON-encoded RegisterUserRequest instance. Expected response body is a JSON-encoded instance of RegisterUserResponse.
func (Client) RequestEmailChange ¶ added in v0.5.2
func (c Client) RequestEmailChange(ref, email string, validationDeadline time.Time) (token string, err error)
RequestEmailChange starts a process of changing an email by returning a token that must be used in ChangeEmail to authorize email change by making a HTTP POST request to {Client.Endpoint}/users/{ref}/email-change-request. Request body is a JSON-encoded RequestEmailChangeRequest instance. Expected response body is a JSON-encoded instance of RequestEmailChangeResponse.
func (Client) RequestPasswordReset ¶ added in v0.5.2
RequestPasswordReset starts a process of reseting a password by providing a token that must be used in ResetPassword to authorize password reset by making a HTTP POST request to {Client.Endpoint}/users/{ref}/password-reset-request. Expected response body is a JSON-encoded instance of RequestPasswordResetResponse.
func (Client) ResetPassword ¶ added in v0.5.2
ResetPassword changes a password of an existing User by making a HTTP POST request to {Client.Endpoint}/users/{ref}/password-reset. Request body is a JSON-encoded ResetPasswordRequest instance.
func (Client) SetPassword ¶ added in v0.5.2
SetPassword changes a password of an existing User by making a HTTP POST request to {Client.Endpoint}/users/{ref}/password. Request body is a JSON-encoded SetPasswordRequest instance.
func (Client) UpdateUser ¶ added in v0.5.2
UpdateUser changes the data of an existing User by making a HTTP POST request to {Client.Endpoint}/users/{ref}. Post body is a JSON-encoded user.Options instance.
func (Client) User ¶ added in v0.5.2
User retrieves an existing User instance by making a HTTP GET request to {Client.Endpoint}/users/{ref}.
func (Client) UserByEmail ¶ added in v0.5.2
UserByEmail retrieves an existing User instance by making a HTTP GET request to {Client.Endpoint}/users-by-email/{email}.
func (Client) UserByID ¶ added in v0.5.2
UserByID retrieves an existing User instance by making a HTTP GET request to {Client.Endpoint}/users-by-id/{id}.
func (Client) UserByUsername ¶ added in v0.5.2
UserByUsername retrieves an existing User instance by making a HTTP GET request to {Client.Endpoint}/users-by-username/{username}.
func (Client) UsersByEmail ¶ added in v0.5.2
UsersByEmail retrieves a paginated list of User instances ordered by Email values by making a HTTP GET request to {Client.Endpoint}/users-by-email?start={stardEmail}&limit={limit}.
func (Client) UsersByID ¶ added in v0.5.2
UsersByID retrieves a paginated list of User instances ordered by ID values by making a HTTP GET request to {Client.Endpoint}/users-by-id?start={stardID}&limit={limit}.
func (Client) UsersByUsername ¶ added in v0.5.2
UsersByUsername retrieves a paginated list of User instances ordered by Username values by making a HTTP GET request to {Client.Endpoint}/users-by-username?start={stardUsername}&limit={limit}.
type EmailChangeTokenResponse ¶
type EmailChangeTokenResponse struct {
Token string `json:"token"`
}
EmailChangeTokenResponse is expected structure of JSON-encoded response body for EmailChangeToken HTTP request.
type RegisterUserRequest ¶
type RegisterUserRequest struct { Options *user.Options `json:"options"` Password string `json:"password"` EmailValidationDeadline time.Time `json:"email-validation-deadline"` }
RegisterUserRequest is a structure that is passed as JSON-encoded body to RegisterUser HTTP request.
type RegisterUserResponse ¶
type RegisterUserResponse struct { User *user.User `json:"user"` EmailValidationToken string `json:"email-validation-token"` }
RegisterUserResponse is expected structure of JSON-encoded response body for RegisterUser HTTP request.
type RequestEmailChangeRequest ¶
type RequestEmailChangeRequest struct { Email string `json:"email"` ValidationDeadline time.Time `json:"validation-deadline"` }
RequestEmailChangeRequest is a structure that is passed as JSON-encoded body to RequestEmailChange HTTP request.
type RequestEmailChangeResponse ¶
type RequestEmailChangeResponse struct {
Token string `json:"token"`
}
RequestEmailChangeResponse is expected structure of JSON-encoded response body for RequestEmailChange HTTP request.
type RequestPasswordResetResponse ¶
type RequestPasswordResetResponse struct {
Token string `json:"token"`
}
RequestPasswordResetResponse is expected structure of JSON-encoded response body for RequestPasswordReset HTTP request.
type ResetPasswordRequest ¶
type ResetPasswordRequest struct {
Password string `json:"password"`
}
ResetPasswordRequest is a structure that is passed as JSON-encoded body to ResetPassword HTTP request.
type SetPasswordRequest ¶
type SetPasswordRequest struct {
Password string `json:"password"`
}
SetPasswordRequest is a structure that is passed as JSON-encoded body to SetPassword HTTP request.