API Specification
Modules
- boilerplate
- models
Model definitions.
boilerplate
- boilerplate
- ~settings :
object - ~databaseSettings :
object - ~watchIgnoreFiles
- ~nunjucksMiddleware(app) ⇒
function - ~sleep(ms)
- ~createDatabaseIfNotExists(dbname)
- ~dropDatabaseIfExists(dbname)
- ~initSequelize() ⇒
Sequelize - ~loadModels(sequelize) ⇒
object - ~syncDatabase(sequelize)
- ~buildExpressApp() ⇒
object - ~startServer()
- ~startShell()
- ~settings :
boilerplate~settings : object
The settings Express.js uses to serve HTTP
Kind: inner constant of boilerplate
Properties
| Name | Type | Description |
|---|---|---|
| port | number | The port the server binds to |
boilerplate~databaseSettings : object
The connection parameters for connecting to the database.
Kind: inner constant of boilerplate
Properties
| Name | Type | Description |
|---|---|---|
| database | string | Overridable via PGDATABASE |
| username | string | Overridable via PGUSER |
| password | string | Overridable via PGPASSWORD |
| host | string | Overridable via PGHOST |
boilerplate~watchIgnoreFiles
List of files to avoid watching.
Kind: inner constant of boilerplate
boilerplate~nunjucksMiddleware(app) ⇒ function
Create middleware to render nunjucks templates.
Kind: inner method of boilerplate
Returns: function - Middleware function
| Param | Type | Description |
|---|---|---|
| app | Express | The express app you're adding things to. |
boilerplate~sleep(ms)
Sleeps.
Kind: inner method of boilerplate
| Param | Type | Description |
|---|---|---|
| ms | integer | How many milliseconds to sleep for. |
boilerplate~createDatabaseIfNotExists(dbname)
Creates a database on the database server if it exists.
Kind: inner method of boilerplate
| Param | Type | Description |
|---|---|---|
| dbname | string | The name of the database to create |
boilerplate~dropDatabaseIfExists(dbname)
Drops a database from the database server if it exists.
Kind: inner method of boilerplate
| Param | Type | Description |
|---|---|---|
| dbname | string | The name of the database to drop |
boilerplate~initSequelize() ⇒ Sequelize
Initializes a sequelize instance. Loads models and syncs the database schema.
Kind: inner method of boilerplate
Returns: Sequelize - An instance of Sequelize that's ready to use.
boilerplate~loadModels(sequelize) ⇒ object
Loads model definitions
Kind: inner method of boilerplate
Returns: object - The models defined
| Param | Type | Description |
|---|---|---|
| sequelize | Sequelize | The Sequelize instance to use |
boilerplate~syncDatabase(sequelize)
Ensures the database tables match the models.
Kind: inner method of boilerplate
| Param | Type | Description |
|---|---|---|
| sequelize | Sequelize | The Sequelize instance to use |
boilerplate~buildExpressApp() ⇒ object
Builds an expressjs app
Kind: inner method of boilerplate
Returns: object - An Express.js app
boilerplate~startServer()
Starts the Express.js HTTP server.
Kind: inner method of boilerplate
boilerplate~startShell()
Starts the Sequelize shell
Kind: inner method of boilerplate
models
Model definitions.
- models
- ~User ⇐
sequelize.Model- .setPassword(v)
- .passwordMatches(v) ⇒
boolean
- ~Address ⇐
sequelize.Model- instance
- .stringValue() ⇒
string - .getCoordinates() ⇒
object
- .stringValue() ⇒
- static
- .geocode(addressString) ⇒
object
- .geocode(addressString) ⇒
- instance
- ~ToolMaker ⇐
sequelize.Model - ~ToolCategory ⇐
sequelize.Model - ~Tool ⇐
sequelize.Model - ~Listing ⇐
sequelize.Model - ~UserMessage ⇐
sequelize.Model - ~UserReviews ⇐
sequelize.Model - ~FileUpload
- ~User ⇐
models~User ⇐ sequelize.Model
Represents a user.
Kind: inner class of models
Extends: sequelize.Model
Properties
| Name | Type | Description |
|---|---|---|
| first_name | string | The user's first name |
| last_name | string | The user's last name |
string | The user's email, used for logging in | |
| password_hash | string | A hashed version of the user's password using bcrypt. Not to be set directly, use setPassword and passwordMatches(). |
| address_id | int | The ID of an Address record for the user. |
| billing_address_id | int | The ID of an Address record for the user. |
- ~User ⇐
sequelize.Model- .setPassword(v)
- .passwordMatches(v) ⇒
boolean
user.setPassword(v)
Sets a user's password.
Kind: instance method of User
| Param | Type | Description |
|---|---|---|
| v | string | The user's new password. |
user.passwordMatches(v) ⇒ boolean
Determines if a given password matches a user's password.
Kind: instance method of User
Returns: boolean - Whether or not the password matched.
| Param | Type | Description |
|---|---|---|
| v | string | The password to test |
models~Address ⇐ sequelize.Model
Represents an address.
Kind: inner class of models
Extends: sequelize.Model
Properties
| Name | Type | Description |
|---|---|---|
| line_two | string | |
| city | string | |
| state | string | The state of the address, should be a 2-digit uppercase value like "NJ" or "PA" |
| zip_code | string | |
| geocoded | bool | Whether or not the address has been geocoded yet |
| geocoded_lat | double | the latitude value from geocoding - not user set |
| geocoded_lon | double | the longitude value from geocoding - not user set |
- ~Address ⇐
sequelize.Model- instance
- .stringValue() ⇒
string - .getCoordinates() ⇒
object
- .stringValue() ⇒
- static
- .geocode(addressString) ⇒
object
- .geocode(addressString) ⇒
- instance
address.stringValue() ⇒ string
Returns a string representing the address.
Kind: instance method of Address
Returns: string - A string representing the address, suitable for display or geocoding.
address.getCoordinates() ⇒ object
Gets coordinates for the address.
Kind: instance method of Address
Returns: object - coordinate The coordinate the address geocodes to ({lat, lon})
Address.geocode(addressString) ⇒ object
Gets coordinates for a string address.
Kind: static method of Address
Returns: object - coordinate The coordinate the address geocodes to ({lat, lon})
| Param | Type | Description |
|---|---|---|
| addressString | string | An address in string form, similar to but not necessarily formatted like "123 Example Street, Exampleton, CA 12345" |
models~ToolMaker ⇐ sequelize.Model
Represents a manufacturer of tools, like Milwaukee or DeWalt.
Kind: inner class of models
Extends: sequelize.Model
Properties
| Name | Type | Description |
|---|---|---|
| name | string | The name of the manufacturer |
| searchVector | string | TSVector, not to be used in JavaScript code (DB-side only) |
models~ToolCategory ⇐ sequelize.Model
Represents a kind of tool - like hammer, saw, or drill.
Kind: inner class of models
Extends: sequelize.Model
Properties
| Name | Type | Description |
|---|---|---|
| name | string | The name of the category |
| searchVector | string | TSVector, not to be used in JavaScript code (DB-side only) |
models~Tool ⇐ sequelize.Model
Represents an individual tool, like the drill in your garage, or your neighbor's drill press.
Kind: inner class of models
Extends: sequelize.Model
Properties
| Name | Type | Description |
|---|---|---|
| name | string | Name of the tool. |
| description | string | An arbitrary description of the tool and its condition. |
| searchVector | ts_vector | A representation of a bunch of text related to the tool that's used with fulltext search. |
| owner_id | integer | The id of the User record that owns this tool |
| tool_category_id | integer | The id the category related to this tool |
| tool_maker_id | integer | The id of the maker of this tool. |
| video | string | YouTube video attached to a tool |
models~Listing ⇐ sequelize.Model
Represents a tool's being listed for sale.
Kind: inner class of models
Extends: sequelize.Model
Properties
| Name | Type | Description |
|---|---|---|
| price | number | The amount the listing costs per billingInterval |
| billingInterval | string | The interval at which you're going to pay price |
| maxBillingIntervals | integer | The maximum number of billing intervals the tool is available for. |
models~UserMessage ⇐ sequelize.Model
Represents a conversation between two users.
Kind: inner class of models
Extends: sequelize.Model
Properties
| Name | Type | Description |
|---|---|---|
| content | string | Message content |
| recipient_id | int | The ID of the recipient User model |
| sender_id | int | The ID of the sending User model |
| listing_id | int | The ID of the listing this message was sent about. |
models~UserReviews ⇐ sequelize.Model
Kind: inner class of models
Extends: sequelize.Model
Classdescription: Represents reviews and ratings of other users
Properties
| Name | Type | Description |
|---|---|---|
| content | text | The contents of the review |
| ratings | integer | The star ratings of another user |
| reviewee_id | integer | |
| reviewer_id | integer |
models~FileUpload
Kind: inner class of models
Classdescription: Represents a file that's uploaded.
Properties
| Name | Type | Description |
|---|---|---|
| path | string | Path of file, relative to uploads directory |
| originalName | string | Original name of the file, as appearing on the uploader's computer |
| size | integer | Size of the file in bytes |
| mimeType | string | The mimetype of the file |
| uploader_id | integer | The ID of the uploader |