diff options
| author | 2021-03-08 22:37:56 +0100 | |
|---|---|---|
| committer | 2021-03-08 22:37:56 +0100 | |
| commit | 338af00e7bb2410f50b514f37f49418b293c0e29 (patch) | |
| tree | 72f9b7ad13ff88c64e05e8d58f1411e2be45e79c /internal | |
| parent | tiny experiments (diff) | |
| download | gotosocial-338af00e7bb2410f50b514f37f49418b293c0e29.tar.xz | |
add note struct
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/db/postgres.go | 17 | ||||
| -rw-r--r-- | internal/model/account.go | 26 | ||||
| -rw-r--r-- | internal/model/note.go | 44 | 
3 files changed, 70 insertions, 17 deletions
| diff --git a/internal/db/postgres.go b/internal/db/postgres.go index a5c4024de..a66b1364a 100644 --- a/internal/db/postgres.go +++ b/internal/db/postgres.go @@ -103,8 +103,22 @@ func newPostgresService(ctx context.Context, c *config.Config, log *logrus.Entry  	acc := model.StubAccount()  	if _, err := conn.Model(acc).Returning("id").Insert(); err != nil {  		cancel() -		return nil, errors.New("db insert error") +		return nil, fmt.Errorf("db insert error: %s", err)  	} +	log.Infof("created account with id %s", acc.ID) + +	note := &model.Note{ +		Visibility: &model.Visibility{ +			Local: true, +		}, +		CreatedAt: time.Now(), +		UpdatedAt: time.Now(), +	} +	if _, err := conn.Model(note).Returning("id").Insert(); err != nil { +		cancel() +		return nil, fmt.Errorf("db insert error: %s", err) +	} +	log.Infof("created note with id %s", note.ID)  	// we can confidently return this useable postgres service now  	return &postgresService{ @@ -300,6 +314,7 @@ func (ps *postgresService) Stop(ctx context.Context) error {  func (ps *postgresService) CreateSchema(ctx context.Context) error {  	models := []interface{}{  		(*model.Account)(nil), +		(*model.Note)(nil),  	}  	ps.log.Info("creating db schema") diff --git a/internal/model/account.go b/internal/model/account.go index 360d0de28..6d8d04954 100644 --- a/internal/model/account.go +++ b/internal/model/account.go @@ -27,32 +27,30 @@ import (  type Account struct {  	Avatar  	Header -	ID                    int `pg:"type:uuid,default:gen_random_uuid(),pk,notnull"` +	URI                   string +	URL                   string +	ID                    string `pg:"type:uuid,default:gen_random_uuid(),pk,notnull"`  	Username              string  	Domain                string  	Secret                string  	PrivateKey            string  	PublicKey             string -	RemoteURL             *url.URL  `pg:"type:text"` -	SalmonURL             *url.URL  `pg:"type:text"` -	HubURL                *url.URL  `pg:"type:text"` +	RemoteURL             string  	CreatedAt             time.Time `pg:"type:timestamp,notnull"`  	UpdatedAt             time.Time `pg:"type:timestamp,notnull"`  	Note                  string  	DisplayName           string -	URI                   *url.URL  `pg:"type:text"` -	URL                   *url.URL  `pg:"type:text"`  	SubscriptionExpiresAt time.Time `pg:"type:timestamp"`  	Locked                bool  	LastWebfingeredAt     time.Time `pg:"type:timestamp"` -	InboxURL              *url.URL  `pg:"type:text"` -	OutboxURL             *url.URL  `pg:"type:text"` -	SharedInboxURL        *url.URL  `pg:"type:text"` -	FollowersURL          *url.URL  `pg:"type:text"` +	InboxURL              string +	OutboxURL             string +	SharedInboxURL        string +	FollowersURL          string  	Protocol              int  	Memorial              bool  	MovedToAccountID      int -	FeaturedCollectionURL *url.URL `pg:"type:text"` +	FeaturedCollectionURL string  	Fields                map[string]string  	ActorType             string  	Discoverable          bool @@ -61,7 +59,6 @@ type Account struct {  	SuspendedAt           time.Time `pg:"type:timestamp"`  	TrustLevel            int  	HideCollections       bool -	DevicesURL            *url.URL  `pg:"type:text"`  	SensitizedAt          time.Time `pg:"type:timestamp"`  	SuspensionOrigin      int  } @@ -85,13 +82,10 @@ type Header struct {  }  func StubAccount() *Account { - -	remoteURL, _ := url.Parse("https://example.org/@someuser") -  	return &Account{  		Username:  "some_user",  		Domain:    "example.org", -		RemoteURL: remoteURL, +		RemoteURL: "https://example.org/@someuser",  		CreatedAt: time.Now(),  		UpdatedAt: time.Now(),  	} diff --git a/internal/model/note.go b/internal/model/note.go new file mode 100644 index 000000000..69242cfa7 --- /dev/null +++ b/internal/model/note.go @@ -0,0 +1,44 @@ +/* +   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 model + +import "time" + +type Note struct { +	ID             string `pg:"type:uuid,default:gen_random_uuid(),pk,notnull"` +	URI            string +	URL            string +	Content        string +	CreatedAt      time.Time `pg:"type:timestamp,notnull"` +	UpdatedAt      time.Time `pg:"type:timestamp,notnull"` +	Local          bool +	AccountID      string +	InReplyToID    string +	BoostOfID      string +	ContentWarning string +	Visibility     *Visibility +} + +type Visibility struct { +	Direct    bool +	Followers bool +	Local     bool +	Unlisted  bool +	Public    bool +} | 
