diff --git a/.idea/misc.xml b/.idea/misc.xml index 860da66..d5d35ec 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + diff --git a/app/src/main/java/org/ntlab/acanthus_client/entities/Account.java b/app/src/main/java/org/ntlab/acanthus_client/entities/Account.java new file mode 100644 index 0000000..53c4b44 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/entities/Account.java @@ -0,0 +1,17 @@ +package org.ntlab.acanthus_client.entities; + +import java.time.LocalDateTime; +import java.util.HashMap; + +//----------------------------------------------------------------- +// ユーザーアカウント +public class Account { + private Integer uid; + private String name; + private String email; + private String password; + private String token; + private HashMap workHashMap = new HashMap<>(); + private Boolean isDummy; + private LocalDateTime lastAccess; +} diff --git a/app/src/main/java/org/ntlab/acanthus_client/entities/AccountJson.java b/app/src/main/java/org/ntlab/acanthus_client/entities/AccountJson.java new file mode 100644 index 0000000..c6728f9 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/entities/AccountJson.java @@ -0,0 +1,8 @@ +package org.ntlab.acanthus_client.entities; + +//----------------------------------------------------------------- +// 全ユーザー検索時情報 +public class AccountJson { + private Integer uid; + private String name; +} diff --git a/app/src/main/java/org/ntlab/acanthus_client/entities/AccountTokenJson.java b/app/src/main/java/org/ntlab/acanthus_client/entities/AccountTokenJson.java new file mode 100644 index 0000000..bb76238 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/entities/AccountTokenJson.java @@ -0,0 +1,7 @@ +package org.ntlab.acanthus_client.entities; + +//----------------------------------------------------------------- +// アカウントに発行されたトークン +public class AccountTokenJson { + private String token; +} diff --git a/app/src/main/java/org/ntlab/acanthus_client/entities/AccountUidJson.java b/app/src/main/java/org/ntlab/acanthus_client/entities/AccountUidJson.java new file mode 100644 index 0000000..35d81b9 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/entities/AccountUidJson.java @@ -0,0 +1,7 @@ +package org.ntlab.acanthus_client.entities; + +//----------------------------------------------------------------- +// アカウントのUid +public class AccountUidJson { + private Integer uid; +} diff --git a/app/src/main/java/org/ntlab/acanthus_client/entities/Work.java b/app/src/main/java/org/ntlab/acanthus_client/entities/Work.java new file mode 100644 index 0000000..849e8ac --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/entities/Work.java @@ -0,0 +1,4 @@ +package org.ntlab.acanthus_client.entities; + +public class Work { +} diff --git a/app/src/main/java/org/ntlab/acanthus_client/resources/accounts/AccountsRest.java b/app/src/main/java/org/ntlab/acanthus_client/resources/accounts/AccountsRest.java new file mode 100644 index 0000000..eb5af07 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/resources/accounts/AccountsRest.java @@ -0,0 +1,44 @@ +package org.ntlab.acanthus_client.resources.accounts; + +import org.ntlab.acanthus_client.entities.Account; +import org.ntlab.acanthus_client.entities.AccountJson; +import org.ntlab.acanthus_client.entities.AccountUidJson; + +import java.util.Collection; + +import retrofit2.Call; +import retrofit2.http.Field; +import retrofit2.http.FormUrlEncoded; +import retrofit2.http.GET; +import retrofit2.http.POST; +import retrofit2.http.Path; +import retrofit2.http.Query; + +//----------------------------------------------------------------- +// RestAPI: accounts, accounts/{uid} +public interface AccountsRest { + //----------------------------------------------------------------- + // 全ユーザーの uid/name を取得 + @GET("accounts") + Call> getAccounts( + @Query("name") String name + ); + //----------------------------------------------------------------- + // アカウントの新規作成 + @FormUrlEncoded + @POST("accounts") + Call createAccount( + @Field("name")String name, + @Field("email")String email, + @Field("password")String password + ); + //----------------------------------------------------------------- + // 対応するuidのユーザーの取得 + @GET("accounts/{uid}") + Call getAccountByUid( + @Path("uid")String uidStr, + @Query("token")String token + ); + //----------------------------------------------------------------- + +} diff --git a/app/src/main/java/org/ntlab/acanthus_client/resources/accounts/LoginRest.java b/app/src/main/java/org/ntlab/acanthus_client/resources/accounts/LoginRest.java new file mode 100644 index 0000000..a70eece --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/resources/accounts/LoginRest.java @@ -0,0 +1,34 @@ +package org.ntlab.acanthus_client.resources.accounts; + +import org.ntlab.acanthus_client.entities.AccountJson; +import org.ntlab.acanthus_client.entities.AccountTokenJson; + +import retrofit2.Call; +import retrofit2.http.Field; +import retrofit2.http.FormUrlEncoded; +import retrofit2.http.GET; +import retrofit2.http.PUT; +import retrofit2.http.Query; + +//----------------------------------------------------------------- +// RestAPI: accounts/login +public interface LoginRest { + + //----------------------------------------------------------------- + // トークン認証 + @GET("accounts/login") + Call hasLoginToken( + @Query("uid") String uidStr, + @Query("token") String token + ); + + //----------------------------------------------------------------- + // トークンの発行 + @FormUrlEncoded + @PUT("accounts/login") + Call issueLoginToken( + @Field("email")String email, + @Field("password")String password + ); + //----------------------------------------------------------------- +}