1
0
Fork 0
forked from jriou/coller

fix: convert id to int64

Snowflake identifiers are integers, not strings.

BREAKING CHANGE: notes that are not using snowflake identifiers will not be
compatible anymore.

Signed-off-by: Julien Riou <julien@riou.xyz>
This commit is contained in:
Julien Riou 2025-09-27 10:05:58 +02:00
commit 1fcde736a8
Signed by: jriou
GPG key ID: 9A099EDA51316854
6 changed files with 9 additions and 9 deletions

View file

@ -36,7 +36,7 @@ type NotePayload struct {
}
type NoteResponse struct {
ID string `json:"id"`
ID int64 `json:"id"`
Message string `json:"message,omitempty"`
Error string `json:"error,omitempty"`
}
@ -246,7 +246,7 @@ func handleMain() int {
logger.Debug("finding note location")
var location string
noteURL := *url + "/" + jsonBody.ID
noteURL := *url + "/" + fmt.Sprintf("%d", jsonBody.ID)
if *copier {
location = "copier"
if *encryptionKey != "" {

View file

@ -64,7 +64,7 @@ Body (JSON):
* **language** (string): language of the note (must be supported by the server)
Response (JSON):
* **id** (string): ID of the note
* **id** (int): ID of the note
### GET /api/note/\<id\>/\<encryptionKey\>

View file

@ -112,7 +112,7 @@ func (d *Database) Get(id string) (*Note, error) {
d.logger.Warn("could not find note", slog.Any("error", trx.Error))
return nil, trx.Error
}
if note.ID != "" {
if note.ID != 0 {
if note.DeleteAfterRead {
if err := d.Delete(note.ID); err != nil {
return nil, err
@ -142,7 +142,7 @@ func (d *Database) Create(content []byte, password string, encryptionKey string,
}
note = &Note{
ID: d.node.Generate().String(),
ID: d.node.Generate().Int64(),
Content: content,
ExpiresAt: time.Now().Add(time.Duration(expiration) * time.Second),
Encrypted: encrypted,
@ -179,7 +179,7 @@ func (d *Database) Create(content []byte, password string, encryptionKey string,
return note, nil
}
func (d *Database) Delete(id string) error {
func (d *Database) Delete(id int64) error {
trx := d.db.Where("id = ?", id).Delete(&Note{})
defer trx.Commit()
if trx.Error != nil {

View file

@ -35,7 +35,7 @@ type CreateNotePayload struct {
}
type CreateNoteResponse struct {
ID string `json:"id"`
ID int64 `json:"id"`
}
func (h *CreateNoteHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {

View file

@ -160,7 +160,7 @@ func (h *CreateNoteWithFormHandler) ServeHTTP(w http.ResponseWriter, r *http.Req
scheme = "https://"
}
h.PageData.URL = fmt.Sprintf("%s%s/%s", scheme, r.Host, note.ID)
h.PageData.URL = fmt.Sprintf("%s%s/%d", scheme, r.Host, note.ID)
if encryptionKey != "" {
h.PageData.URL += "/" + encryptionKey
}

View file

@ -7,7 +7,7 @@ import (
)
type Note struct {
ID string `json:"id" gorm:"primaryKey"`
ID int64 `json:"id" gorm:"primaryKey"`
Content []byte `json:"content" gorm:"not null"`
Encrypted bool `json:"encrypted"`
PasswordHash []byte `json:"password_hash"`