ducky/subscriptions

Paddy 2015-09-27 Parent:f1a22fc2321d

11:0ae1ff0ee306 Go to Latest

ducky/subscriptions/postgres.go

Add comments, move ChangingSystemProperties to the api package. Add comments to all our exported types and variables in subscription.go, both to make golint happy and because it's good to have comments. Move the subscriptions.ChangingSystemProperties helper to api.changingSystemProperties, because it returns API-specific strings and there's no real reason it has to be in the subscriptions package--everything it needs to work on is exported.

History
paddy@1 1 package subscriptions
paddy@1 2
paddy@1 3 import (
paddy@1 4 "database/sql"
paddy@1 5 )
paddy@1 6
paddy@1 7 // NewPostgres returns a usable Postgres instance, if and only
paddy@1 8 // if error is nil. If error is not nil, the returned Postgres
paddy@1 9 // instance should not be used.
paddy@1 10 func NewPostgres(conn string) (Postgres, error) {
paddy@1 11 db, err := sql.Open("postgres", conn)
paddy@1 12 if err != nil {
paddy@1 13 return Postgres{}, err
paddy@1 14 }
paddy@1 15 return Postgres{db}, nil
paddy@1 16 }
paddy@1 17
paddy@1 18 // Postgres represents a thin wrapper around *sql.DB, so we can
paddy@1 19 // inherit its methods but also define our own (so we can fulfill
paddy@1 20 // our subscriptionStore interface on Postgres). Note that the
paddy@1 21 // value of a Postgres variable contains a _pointer_ to an sql.DB
paddy@1 22 // pool of connections, so it's not necessary to use the address of
paddy@1 23 // the Postgres variable itself (though there shouldn't be any harm
paddy@1 24 // in doing so).
paddy@1 25 type Postgres struct {
paddy@1 26 *sql.DB
paddy@1 27 }