diff options
author | 2021-03-22 22:26:54 +0100 | |
---|---|---|
committer | 2021-03-22 22:26:54 +0100 | |
commit | aa9ce272dcfa1380b2f05bc3a90ef8ca1b0a7f62 (patch) | |
tree | f3e01f5434a2f90007969373f0fa32dc855207c7 /internal/oauth/pgclientstore.go | |
parent | fix lint errors (diff) | |
download | gotosocial-aa9ce272dcfa1380b2f05bc3a90ef8ca1b0a7f62.tar.xz |
Oauth/token (#7)
* add host and protocol options
* some fiddling
* tidying up and comments
* tick off /oauth/token
* tidying a bit
* tidying
* go mod tidy
* allow attaching middleware to server
* add middleware
* more user friendly
* add comments
* comments
* store account + app
* tidying
* lots of restructuring
* lint + tidy
Diffstat (limited to 'internal/oauth/pgclientstore.go')
-rw-r--r-- | internal/oauth/pgclientstore.go | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/internal/oauth/pgclientstore.go b/internal/oauth/pgclientstore.go deleted file mode 100644 index 1df46fedb..000000000 --- a/internal/oauth/pgclientstore.go +++ /dev/null @@ -1,81 +0,0 @@ -/* - GoToSocial - Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package oauth - -import ( - "context" - "fmt" - - "github.com/go-pg/pg/v10" - "github.com/gotosocial/oauth2/v4" - "github.com/gotosocial/oauth2/v4/models" -) - -type pgClientStore struct { - conn *pg.DB -} - -func NewPGClientStore(conn *pg.DB) oauth2.ClientStore { - pts := &pgClientStore{ - conn: conn, - } - return pts -} - -func (pcs *pgClientStore) GetByID(ctx context.Context, clientID string) (oauth2.ClientInfo, error) { - poc := &oauthClient{ - ID: clientID, - } - if err := pcs.conn.WithContext(ctx).Model(poc).Where("id = ?", poc.ID).Select(); err != nil { - return nil, fmt.Errorf("error in clientstore getbyid searching for client %s: %s", clientID, err) - } - return models.New(poc.ID, poc.Secret, poc.Domain, poc.UserID), nil -} - -func (pcs *pgClientStore) Set(ctx context.Context, id string, cli oauth2.ClientInfo) error { - poc := &oauthClient{ - ID: cli.GetID(), - Secret: cli.GetSecret(), - Domain: cli.GetDomain(), - UserID: cli.GetUserID(), - } - _, err := pcs.conn.WithContext(ctx).Model(poc).OnConflict("(id) DO UPDATE").Insert() - if err != nil { - return fmt.Errorf("error in clientstore set: %s", err) - } - return nil -} - -func (pcs *pgClientStore) Delete(ctx context.Context, id string) error { - poc := &oauthClient{ - ID: id, - } - _, err := pcs.conn.WithContext(ctx).Model(poc).Where("id = ?", poc.ID).Delete() - if err != nil { - return fmt.Errorf("error in clientstore delete: %s", err) - } - return nil -} - -type oauthClient struct { - ID string - Secret string - Domain string - UserID string -} |