Newer
Older
package db
import (
"database/sql"
"fmt"
)
// SelectObjectByBucketKey returns an object from a bucket and a key.
func SelectObjectByBucketKey(bucket, key string) (Object, error) {
var object Object
var contentType sql.NullString
var destURL sql.NullString
var objectType int
var deletedAt pq.NullTime
var deleteReason sql.NullString
err := DB.QueryRow(selectObjectByBucketKey, fmt.Sprintf("%s/%s", bucket, key)).
Scan(&contentType, &destURL, &objectType, &deletedAt, &deleteReason, &md5Hash)
if err != nil {
return object, err
}
// Populate object values
if contentType.Valid {
object.ContentType = &contentType.String
}
if destURL.Valid {
if deletedAt.Valid {
object.DeletedAt = &deletedAt.Time
if deleteReason.Valid {
object.DeleteReason = &deleteReason.String
}
}
if md5Hash.Valid {
object.MD5Hash = &md5Hash.String
}
object.ObjectType = objectType
return object, nil
}