httpUser

package
v0.5.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 27, 2017 License: BSD-3-Clause Imports: 7 Imported by: 1

Documentation

Overview

Package httpUser provides a HTTP client to an external user service that can respond to HTTP requests defined here.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUnauthorized                 = errorRegistry.MustAddMessageError(401, "Unauthorized")
	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

type AuthenticateResponse struct {
	User *user.User `json:"user"`
}

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

func (c Client) Authenticate(ref, password string) (u *user.User, err error)

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

func (c Client) ChangeEmail(ref, token string) (u *user.User, err error)

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

func (c Client) CreateUser(o *user.Options) (u *user.User, err error)

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

func (c Client) DeleteUser(ref string) (u *user.User, err error)

DeleteUser deletes an existing User by making a HTTP DELETE request to {Client.Endpoint}/users/{ref}.

func (Client) EmailChangeToken added in v0.5.2

func (c Client) EmailChangeToken(ref, email string) (token string, err error)

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

func (c Client) RequestPasswordReset(ref string) (token string, err error)

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

func (c Client) ResetPassword(token, password string) (err error)

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

func (c Client) SetPassword(ref string, password string) (err error)

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

func (c Client) UpdateUser(ref string, o *user.Options) (u *user.User, err error)

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

func (c Client) User(ref string) (u *user.User, err error)

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

func (c Client) UserByEmail(email string) (u *user.User, err error)

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

func (c Client) UserByID(id string) (u *user.User, err error)

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

func (c Client) UserByUsername(username string) (u *user.User, err error)

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

func (c Client) UsersByEmail(startEmail string, limit int) (page *user.UsersPage, err error)

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

func (c Client) UsersByID(startID string, limit int) (page *user.UsersPage, err error)

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

func (c Client) UsersByUsername(startUsername string, limit int) (page *user.UsersPage, err error)

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL