本文整理汇总了Golang中github.com/gocql/gocql.Session类的典型用法代码示例。如果您正苦于以下问题:Golang Session类的具体用法?Golang Session怎么用?Golang Session使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Session类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: createUser
// Function handle new use creating
func createUser(body *[]byte, session *gocql.Session) (int, error) {
var request newUserRequest
var count int
err := json.Unmarshal(*body, &request)
if err != nil {
return http.StatusBadRequest, err
}
// Here should be call of function to extended validation, but nothing was in requirements
if request.Password == "" || request.Username == "" {
return http.StatusBadRequest, errors.New("User or password is empty")
}
// Check if such user already existing
err = session.Query("SELECT COUNT(*) from users where username = '" + request.Username + "'").Scan(&count)
if err != nil {
return http.StatusInternalServerError, err
}
if count > 0 {
return http.StatusConflict, errors.New("Such user alredy existing")
}
// Prepare password hash to write it to DB
hash := sha256.New()
hash.Write([]byte(request.Password))
err = session.Query("INSERT INTO users (username,password) VALUES (?,?)", request.Username, hex.EncodeToString(hash.Sum(nil))).Exec()
if err != nil {
return http.StatusInternalServerError, err
}
return http.StatusCreated, nil
}
开发者ID:dartkron,项目名称:Golang-REST-HTTP-API-example,代码行数:36,代码来源:authorizer.go
示例2: add_new_file
func add_new_file(session *gocql.Session, w http.ResponseWriter, r *http.Request) {
/*
Adds a new file to Cassandra via a POST.
*/
// Instantiate the struct.
file := Asset{}
// Decodes the json POST.
decoder := json.NewDecoder(r.Body)
err := decoder.Decode(&file)
if err != nil {
log.Printf("Failed to decode: %s\n", err)
}
// We create the creation time instead of the client.
created := time.Now()
log.Printf("%s added new file: %s, Originally created at %s in %s. Exists in MA01: %t. Exists in TX01: %t.", strings.Split(r.RemoteAddr, ":")[0], file.Fid, file.Created, strings.ToUpper(file.Origin), file.Ma01, file.Tx01)
// Execute the insert, at CL:ALL.
if err := session.Query(`
INSERT INTO file_ledger (fid, created, origin, ma01, tx01)
VALUES (?, ?, ?, ?, ?)
IF NOT EXISTS`, &file.Fid, created, &file.Origin, &file.Ma01, &file.Tx01).Consistency(gocql.All).Exec(); err != nil {
log.Printf("Failed to insert: %s\n", err)
fail_resp := []byte(`{"insert":"fail"}`)
w.Write(fail_resp)
} else {
ok_resp := []byte(`{"insert":"success"}`)
w.Write(ok_resp)
}
}
开发者ID:nmilford,项目名称:phylactery,代码行数:33,代码来源:phylactery.go
示例3: update_file
func update_file(session *gocql.Session, dc string, w http.ResponseWriter, r *http.Request) {
/*
Updates a new file in Cassandra via a POST.
*/
// Instantiate the struct.
file := Asset{}
// Decodes the json POST.
decoder := json.NewDecoder(r.Body)
err := decoder.Decode(&file)
if err != nil {
log.Printf("Failed to decode: %s\n", err)
}
log.Printf("%s toggled file %s as true in %s", strings.Split(r.RemoteAddr, ":")[0], file.Fid, strings.ToUpper(dc))
// Compose the CQL query.
query := fmt.Sprintf(`
UPDATE file_ledger
SET %s = true
WHERE fid = '%s'`, dc, file.Fid)
// Execute the insert, at ConsistancyLevel:ALL.
if err := session.Query(query).Consistency(gocql.All).Exec(); err != nil {
log.Printf("Failed to update: %s\n", err)
fail_resp := []byte(`{"update":"fail"}`)
w.Write(fail_resp)
} else {
ok_resp := []byte(`{"update":"success"}`)
w.Write(ok_resp)
}
}
开发者ID:nmilford,项目名称:phylactery,代码行数:34,代码来源:phylactery.go
示例4: UserQ
// UserQ ...
func UserQ(session *gocql.Session, query string) map[string]interface{} {
user := map[string]interface{}{"id": 0, "name": ""}
session.Query(query).MapScan(user)
return user
}
开发者ID:tonky,项目名称:go-experiments,代码行数:8,代码来源:cass.go
示例5: Find
func (asset *Asset) Find(session *gocql.Session, assetId string) (*Asset, error) {
var id gocql.UUID
var name string
var path string
var contentType string
var createdAt time.Time
var binary []byte
// Check if the assetId is an valid UUID
idCheck, err := gocql.ParseUUID(assetId)
if err != nil {
return nil, err
}
if idCheck.Timestamp() == 0 {
return nil, errors.New("Invalid UUID")
}
if err := session.Query(`SELECT id, name, path, contenttype, createdat, binary FROM assets WHERE id = ? LIMIT 1`,
assetId).Consistency(gocql.One).Scan(&id, &name, &path, &contentType, &createdAt, &binary); err != nil {
return nil, err
}
return &Asset{id, name, strings.Split(path, ","), contentType, createdAt, binary}, nil
}
开发者ID:arkxu,项目名称:caaas,代码行数:25,代码来源:entity.go
示例6: worker
func worker(session *gocql.Session, ch chan *sample) {
for s := range ch {
if err := session.Query(`INSERT INTO samples (metric, timestamp, value) VALUES (?, ?, ?)`,
s.name, s.timestamp, s.value).Exec(); err != nil {
log.Fatalf("Query error: %s", err)
}
}
}
开发者ID:brian-brazil,项目名称:benchmarks,代码行数:8,代码来源:cassandra_cql_inserts.go
示例7: Truncate
func Truncate(session *gocql.Session, table cqlc.Table) {
stmt := fmt.Sprintf("truncate %s", table.TableName())
err := session.Query(stmt).Exec()
if err != nil {
log.Fatalf("Could not %s: %v", stmt, err)
os.Exit(1)
}
}
开发者ID:EverythingMe,项目名称:cqlc,代码行数:9,代码来源:helper.go
示例8: tearDown
func tearDown(t *testing.T, session *gocql.Session) {
defer session.Close()
// if err := session.Query(`Drop Table message`).Exec(); err != nil {
// t.Log("can not drop Table testdata")
// t.Fatal(err.Error())
// }
}
开发者ID:cs6402,项目名称:goose,代码行数:9,代码来源:message_test.go
示例9: CreateTweet
// CreateTweet creates a new tweet
func CreateTweet(s *gocql.Session, tweet *Tweet) error {
q1 := `INSERT INTO tweets_by_id (id, tweet) VALUES (?,?);`
q2 := `UPDATE users_by_name SET tweets = tweets + [?] WHERE name = ?;`
err := s.Query(q1, tweet.ID, tweet).Exec()
if err != nil {
return err
}
return s.Query(q2, tweet, tweet.Username).Exec()
}
开发者ID:kubernetesbook,项目名称:datastore-service,代码行数:10,代码来源:dataservice.go
示例10: getDefinition
func getDefinition(session *gocql.Session, words []string) string {
var defn string
thingtodefine := strings.ToLower(strings.Join(words, " "))
iter := session.Query("select defn from words where word = ?", thingtodefine).Consistency(gocql.One).Iter()
for iter.Scan(&defn) {
return fmt.Sprintf("'%s': %s", thingtodefine, defn)
}
return fmt.Sprintf("Sorry I don't know about '%s'", thingtodefine)
}
开发者ID:meschbach,项目名称:mybot,代码行数:9,代码来源:mybot.go
示例11: insertSerieIds
func insertSerieIds(session *gocql.Session, serieIdsToInsert []gocql.UUID) error {
insertSerieQuery := session.Query("INSERT INTO \"SerieId\" (\"SerieId\") VALUES (?);")
for _, id := range serieIdsToInsert {
if err := insertSerieQuery.Bind(id).Exec(); err != nil {
return err
}
}
return nil
}
开发者ID:Abc-Arbitrage,项目名称:cassandra-drivers-benchmark,代码行数:10,代码来源:Writer.go
示例12: FindByPath
func (asset Asset) FindByPath(session *gocql.Session, path string) ([]Asset, error) {
var id gocql.UUID
var name string
var assets = make([]Asset, 0)
iter := session.Query(`SELECT id, name FROM assetbypaths WHERE path = ?`, path).Iter()
for iter.Scan(&id, &name) {
assets = append(assets, Asset{Id: id, Name: name, Path: strings.Split(path, ",")})
}
return assets, nil
}
开发者ID:arkxu,项目名称:caaas,代码行数:10,代码来源:entity.go
示例13: injectEvent
func injectEvent(session *gocql.Session, resId string) error {
t := time.Now().UTC()
err := session.Query(`INSERT INTO resources_simple(event_time, resource_id, event) VALUES (?, ?, ?)`,
t, resId, fmt.Sprintf(`{"message":"Hello World", "ts":"%s"}`, t.Format(time.RFC3339Nano))).Exec()
if err != nil {
log.Printf("Error with insert for id: %s: %s", resId, err)
return fmt.Errorf("insert error:", err)
}
return nil
}
开发者ID:skyec,项目名称:spike-cassandra,代码行数:11,代码来源:main.go
示例14: Migrate_0_9_1_to_15_04_03
func Migrate_0_9_1_to_15_04_03(session *gocql.Session) error {
// Perform all migration queries.
for _, query := range migrationQueries_0_9_1_to_15_04_03 {
canolog.Info(query)
if err := session.Query(query).Exec(); err != nil {
// Ignore errors (just print them).
canolog.Warn(query, ": ", err)
}
}
return nil
}
开发者ID:lonycell,项目名称:canopy-server,代码行数:11,代码来源:0.9.1_to_15.04.03.go
示例15: cleanup
func cleanup(session *gocql.Session) error {
if err := session.Query("TRUNCATE \"SerieId\";").Exec(); err != nil {
return err
}
if err := session.Query("TRUNCATE \"Timeserie\"").Exec(); err != nil {
return err
}
return nil
}
开发者ID:Abc-Arbitrage,项目名称:cassandra-drivers-benchmark,代码行数:11,代码来源:CassandraBenchmark.go
示例16: EnsureTableExists
//EnsureTableExists makes sure the schema version table is present
func EnsureTableExists(session *gocql.Session) error {
return session.Query(`
CREATE TABLE IF NOT EXISTS Schema_Version(
appliedOn timestamp,
versionId bigint,
description text,
PRIMARY KEY ( versionId, appliedOn )
)
WITH CLUSTERING ORDER BY (appliedOn DESC)
`).Exec()
}
开发者ID:bhameyie,项目名称:cassymig,代码行数:12,代码来源:version.go
示例17: runWithStaticKeyspace
func runWithStaticKeyspace(s *gocql.Session) string {
truncate := fmt.Sprintf("TRUNCATE %s.%s", SHARED.Keyspace(), SHARED.TableName())
if err := s.Query(truncate).Exec(); err != nil {
log.Fatalf("Could not connect to cassandra: %v", err)
os.Exit(1)
}
ctx := cqlc.NewContext()
ctx.StaticKeyspace = true
return runWithContext(s, ctx)
}
开发者ID:arkxu,项目名称:cqlc,代码行数:12,代码来源:keyspace.go
示例18: getCandidates
func getCandidates(session *gocql.Session, words []string) [][]string {
var first, rest, defn string
rval := make([][]string, 0)
iter := session.Query(`select first, rest, defn from defs where first in ?`, words).Consistency(gocql.One).Iter()
for iter.Scan(&first, &rest, &defn) {
rval = append(rval, []string{first, rest, defn})
}
if err := iter.Close(); err != nil {
log.Fatal(err)
}
return rval
}
开发者ID:meschbach,项目名称:mybot,代码行数:12,代码来源:cassandra.go
示例19: NewCassandraLockClient
// NewCassandraLockClient creates a new client from options
func NewCassandraLockClient(opts CassandraOptions) (*CassandraClient, error) {
if opts.ReplicationFactor <= 0 {
opts.ReplicationFactor = 1
}
consistency := gocql.Quorum
if opts.ReplicationFactor == 0 {
consistency = gocql.One
}
var session *gocql.Session
var err error
var c CassandraClient
for proto := 4; proto > 1; proto-- {
c = CassandraClient{nil, opts.Hosts, "", "", "", nil, proto, consistency}
c.cluster = gocql.NewCluster(opts.Hosts...)
c.cluster.ProtoVersion = proto
session, err = c.cluster.CreateSession()
if err == nil {
break
}
}
if err != nil {
return nil, err
}
err = session.Query(
fmt.Sprintf(createKs, opts.KeySpace, opts.ReplicationFactor),
).Exec()
if err != nil {
return nil, err
}
err = session.Query(
fmt.Sprintf(createTable, opts.KeySpace, opts.TableName),
).Exec()
if err != nil {
return nil, err
}
id, err := gocql.RandomUUID()
if err != nil {
return nil, err
}
c.hosts = opts.Hosts
c.keyspace = opts.KeySpace
c.table = opts.TableName
c.clientID = id.String()
c.Reconnect()
return &c, nil
}
开发者ID:gbagnoli,项目名称:glock,代码行数:53,代码来源:driver_cassandra.go
示例20: Exec
func (c *Context) Exec(s *gocql.Session) error {
stmt, placeHolders, err := BuildStatement(c)
if err != nil {
return err
}
if c.Debug {
debugStmt(stmt, placeHolders)
}
return s.Query(stmt, placeHolders...).Exec()
}
开发者ID:philipsoutham,项目名称:cqlc,代码行数:13,代码来源:cqlc.go
注:本文中的github.com/gocql/gocql.Session类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论