164 lines
3.1 KiB
Go
164 lines
3.1 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"net/url"
|
|
"reflect"
|
|
|
|
"github.com/zemirco/couchdb"
|
|
)
|
|
|
|
// create your own document
|
|
type cardDocument struct {
|
|
couchdb.Document
|
|
IsQuestion bool `json:"isquestion"`
|
|
Blank int `json:"blank"`
|
|
Text string `json:"text`
|
|
}
|
|
|
|
type dummyDocument struct {
|
|
couchdb.Document
|
|
Foo string `json:"foo"`
|
|
Beep string `json:"beep"`
|
|
}
|
|
|
|
func connectCouchdb() couchdb.DatabaseService {
|
|
/*
|
|
http://127.0.0.1:5984/_utils/#database/golang_cards/_all_docs
|
|
*/
|
|
// if url_couchdb == "" {
|
|
url_couchdb := "http://root:password@127.0.0.1:5984/"
|
|
// }
|
|
|
|
u, err := url.Parse(url_couchdb)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
client, err := couchdb.NewClient(u)
|
|
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
// return client, err
|
|
fmt.Println(reflect.TypeOf(client))
|
|
db := client.Use("golang_cards")
|
|
// return db
|
|
fmt.Println(reflect.TypeOf(db))
|
|
return db
|
|
|
|
}
|
|
|
|
func addNewCard(_isQuestion bool, _blank int, _text string) {
|
|
if !_isQuestion {
|
|
fmt.Printf("NIE")
|
|
_blank = 0
|
|
}
|
|
|
|
db := connectCouchdb()
|
|
|
|
doc := &cardDocument{ //struktura karty
|
|
IsQuestion: _isQuestion,
|
|
Blank: _blank,
|
|
Text: _text,
|
|
}
|
|
|
|
// doc := &dummyDocument{
|
|
// Foo: "bar",
|
|
// Beep: "bopp",
|
|
// }
|
|
|
|
result, err := db.Post(doc)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
// fmt.Printf(result)
|
|
fmt.Println(reflect.TypeOf(result))
|
|
|
|
// get id and current revision.
|
|
if err := db.Get(doc, result.ID); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
fmt.Printf(result.ID)
|
|
}
|
|
|
|
func main() {
|
|
// db := connectCouchdb()
|
|
addNewCard(true, 1, "_text")
|
|
}
|
|
|
|
// func addNewCard(){
|
|
// u, err = connectCouchdb("")
|
|
// client, err := couchdb.NewClient(u)
|
|
|
|
// db := client.Use("golang_cards")
|
|
// doc := &cardDocument{
|
|
// Foo: "bar",
|
|
// Beep: "bopp",
|
|
// ID int
|
|
// isQuestion bool //True karta pytanie, False karta odpowiedź
|
|
// Blank int //ile kart odpowiedzi na pytanie
|
|
// Text string // podłoga to luka
|
|
// }
|
|
// result, err := db.Post(doc)
|
|
// if err != nil {
|
|
// panic(err)
|
|
// }
|
|
|
|
// }
|
|
// // start
|
|
// func main() {
|
|
|
|
// u, err = connectCouchdb("")
|
|
// // create a new client
|
|
// client, err := couchdb.NewClient(u)
|
|
// if err != nil {
|
|
// panic(err)
|
|
// }
|
|
|
|
// // get some information about your CouchDB
|
|
// info, err := client.Info()
|
|
// if err != nil {
|
|
// panic(err)
|
|
// }
|
|
// fmt.Println(info)
|
|
|
|
// // // create a database
|
|
// // if _, err = client.Create("dummy"); err != nil {
|
|
// // panic(err)
|
|
// // }
|
|
|
|
// // use your new "dummy" database and create a document
|
|
// db := client.Use("dummy")
|
|
// doc := &cardDocument{
|
|
// Foo: "bar",
|
|
// Beep: "bopp",
|
|
// ID int
|
|
// isQuestion bool //True karta pytanie, False karta odpowiedź
|
|
// Blank int //ile kart odpowiedzi na pytanie
|
|
// Text string // podłoga to luka
|
|
// }
|
|
// result, err := db.Post(doc)
|
|
// if err != nil {
|
|
// panic(err)
|
|
// }
|
|
|
|
// // get id and current revision.
|
|
// if err := db.Get(doc, result.ID); err != nil {
|
|
// panic(err)
|
|
// }
|
|
|
|
// // delete document
|
|
// if _, err = db.Delete(doc); err != nil {
|
|
// panic(err)
|
|
// }
|
|
|
|
// // and finally delete the database
|
|
// if _, err = client.Delete("dummy"); err != nil {
|
|
// panic(err)
|
|
// }
|
|
|
|
// }
|