Closed NaviteLogger closed 17 hours ago
Do modeli w GO przydałoby się dorobić też struktury pochodne. Co mam na myśli:
type Scientist struct { ID uuid.UUID `db:"id" json:"id"` FirstName string `db:"first_name" json:"first_name"` LastName string `db:"last_name" json:"last_name"` AcademicTitle string `db:"academic_title" json:"academic_title"` ResearchArea string `db:"research_area" json:"research_area"` Email string `db:"email" json:"email"` ProfileUrl string `db:"profile_url" json:"profile_url"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` }
Ten model jest przydatny gdy chce wyciągąć dany rekord z bazy danych - w ten sposób mapujesz cały jeden rząd na tą strukturę. A co w przypadku gdy chcesz wsadzić model do bazy danych? Wtedy wystarczy posłużyć się:
type CreateScientist struct { FirstName string `db:"first_name" json:"first_name"` LastName string `db:"last_name" json:"last_name"` AcademicTitle string `db:"academic_title" json:"academic_title"` ResearchArea string `db:"research_area" json:"research_area"` Email string `db:"email" json:"email"` ProfileUrl string `db:"profile_url" json:"profile_url"` }
ponieważ baza danych sama stworzy Ci unikatowe UUID oraz daty. Dla aktualizacji modelu potrzebujemy:
type UpdateScientist struct { ID uuid.UUID `db:"id" json:"id"` FirstName string `db:"first_name" json:"first_name"` LastName string `db:"last_name" json:"last_name"` AcademicTitle string `db:"academic_title" json:"academic_title"` ResearchArea string `db:"research_area" json:"research_area"` Email string `db:"email" json:"email"` ProfileUrl string `db:"profile_url" json:"profile_url"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` }
A do usuwania starczy:
type DeleteScientist struct { ID uuid.UUID `db:"id" json:"id"` }
Już. https://github.com/IO-Lab2/API/commit/67bac30df791a96cc13936f11bfb55d773a98e26
Do modeli w GO przydałoby się dorobić też struktury pochodne. Co mam na myśli:
Ten model jest przydatny gdy chce wyciągąć dany rekord z bazy danych - w ten sposób mapujesz cały jeden rząd na tą strukturę. A co w przypadku gdy chcesz wsadzić model do bazy danych? Wtedy wystarczy posłużyć się:
ponieważ baza danych sama stworzy Ci unikatowe UUID oraz daty. Dla aktualizacji modelu potrzebujemy:
A do usuwania starczy: