ERROR: (gcloud.app.deploy) PERMISSION_DENIED: Not allowed to get project settings for project PROJECT_ID
このエラーが発生したので「App Engine 管理者」の役割を設定した。
ERROR: (gcloud.app.deploy) Error uploading files: User [wercker@PROJECT_ID.iam.gserviceaccount.com] does not have permission to access b [staging.PROJECT_ID.appspot.com] (or it may not exist): wercker@PROJECT_ID.iam.gserviceaccount.com does not have storage.objects.list access to staging.PROJECT_ID.appspot.com.
class Entity { val name:Option[Property[String]] = "name".p val age = "age".p // 型推論でOption[Property[Int]] val birthday = "date".p.index } val e = new Entity() e.name = "Taro" e.age = 10 // def age_=(value) = valueとかしておく必要ありか e.birthday = Date(2001, 7, 15) Datastore.put(e)
なんとなく、これにはしたくない。せっかくのScalaなんだし…という、感情的理由(^^;
trait利用
trait Person { // val kind:String = "person" // ここに持たせる? val name:Option[Property[String]] val age:Option[Property[Int]] } val e = new Entity with Person e.name = "Taro" // Property[String].valueに"Taro"を設定する or varにする e.age = 10 Datastore.store("kind", e)
class OauthController(request:Request, response:Response) extends Controller(request, response) { def auth = { try { val oauth = OAuthServiceFactory.getOAuthService(); val oauthUser = oauth.getCurrentUser match { case user if user != null => user.getNickname; case _ => "unknown" } val user = UserServiceFactory.getUserService.getCurrentUser match { case user if user != null => user.getNickname case _ => "unknown" } val msg = "oauth: %s / user: %s".format(oauthUser, user) response.getWriter.write(msg) } catch { case e:OAuthRequestException => response.getWriter.write(e.getMessage) } } }