Skip to content

Commit 75a0235

Browse files
ДОбавил репо могни, трепозитории, репо пользователя, профилей, .editorconfig обновил хэндлеры
1 parent 96ed533 commit 75a0235

File tree

30 files changed

+586
-271
lines changed

30 files changed

+586
-271
lines changed

.editorconfig

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
root = true
2+
3+
[*]
4+
end_of_line = lf
5+
insert_final_newline = true
6+
7+
[*.java]
8+
indent_style = tab

pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,16 @@
8080
<artifactId>log4j-slf4j2-impl</artifactId>
8181
<version>2.20.0</version>
8282
</dependency>
83+
<dependency>
84+
<groupId>org.mongodb</groupId>
85+
<artifactId>mongodb-driver-sync</artifactId>
86+
<version>3.9.1</version>
87+
</dependency>
88+
<dependency>
89+
<groupId>dev.morphia.morphia</groupId>
90+
<artifactId>morphia-core</artifactId>
91+
<version>2.4.14</version>
92+
</dependency>
8393
</dependencies>
8494

8595

src/main/java/ru/untitled_devs/bot/Main.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import org.apache.logging.log4j.Logger;
66
import org.telegram.telegrambots.meta.TelegramBotsApi;
77
import org.telegram.telegrambots.updatesreceivers.DefaultBotSession;
8+
import ru.untitled_devs.bot.start.StartRouter;
89
import ru.untitled_devs.core.client.Bot;
910
import ru.untitled_devs.core.fsm.storage.InMemoryStorage;
1011

@@ -18,9 +19,12 @@ public static void main(String[] args) {
1819
try {
1920
TelegramBotsApi botsApi = new TelegramBotsApi(DefaultBotSession.class);
2021
Bot bot = new Bot(config.getBotToken(), config.getBotName(), storage,logger);
22+
23+
bot.addRouter(new StartRouter(bot));
24+
2125
botsApi.registerBot(bot);
2226
} catch (Exception e) {
2327
logger.error(e.getMessage());
2428
}
2529
}
26-
}
30+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package ru.untitled_devs.bot.models;
2+
3+
public interface Model {
4+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package ru.untitled_devs.bot.models;
2+
3+
import com.mongodb.client.model.geojson.Point;
4+
import dev.morphia.annotations.Entity;
5+
import dev.morphia.annotations.Id;
6+
import org.bson.types.ObjectId;
7+
8+
@Entity("Profiles")
9+
public class Profile implements Model {
10+
@Id
11+
private ObjectId id;
12+
13+
private String description;
14+
private int age;
15+
private String city;
16+
private String image;
17+
18+
private Point coordinates;
19+
20+
private boolean show;
21+
22+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package ru.untitled_devs.bot.models;
2+
3+
import dev.morphia.annotations.Entity;
4+
import dev.morphia.annotations.Id;
5+
import dev.morphia.annotations.Reference;
6+
import org.bson.types.ObjectId;
7+
8+
@Entity("Accounts")
9+
public class User implements Model{
10+
@Id
11+
private ObjectId id;
12+
13+
private int telegramId;
14+
private String lang;
15+
private boolean admin;
16+
private boolean banned;
17+
18+
@Reference
19+
private Profile profile;
20+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package ru.untitled_devs.bot.registration.fsm;
2+
3+
import ru.untitled_devs.core.fsm.states.State;
4+
import ru.untitled_devs.core.fsm.states.StatesGroup;
5+
6+
public class RegistrationStates extends StatesGroup {
7+
public static final State START = state();
8+
public static final State NAME = state();
9+
public static final State AGE = state();
10+
public static final State LOCATION = state();
11+
public static final State PHOTO = state();
12+
13+
static {
14+
allStates(RegistrationStates.class);
15+
}
16+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package ru.untitled_devs.bot.registration.routes;
2+
import org.telegram.telegrambots.meta.api.objects.Message;
3+
import ru.untitled_devs.bot.registration.fsm.RegistrationStates;
4+
import ru.untitled_devs.core.client.Bot;
5+
import ru.untitled_devs.core.fsm.context.FSMContext;
6+
import ru.untitled_devs.core.routers.Router;
7+
import ru.untitled_devs.core.routers.filters.Command;
8+
import ru.untitled_devs.core.routers.handlers.MessageHandler;
9+
10+
public class RegistraitonRouter extends Router {
11+
private final Bot bot;
12+
13+
public RegistraitonRouter(Bot bot) {
14+
this.bot = bot;
15+
}
16+
17+
private void registerHandlers() {
18+
this.addHandler(RegistrationStates.START, new MessageHandler(this::startRegistration, new Command("start")));
19+
}
20+
21+
private void startRegistration(Message message, FSMContext ctx) {
22+
23+
}
24+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package ru.untitled_devs.bot.repositories;
2+
3+
import java.util.List;
4+
import java.util.Optional;
5+
6+
public interface BaseRepo<T, ID> {
7+
T save(T entity);
8+
Optional<T> findById(ID id);
9+
List<T> findAll();
10+
void delete(T entity);
11+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package ru.untitled_devs.bot.repositories;
2+
3+
import dev.morphia.Datastore;
4+
import dev.morphia.query.MorphiaCursor;
5+
import org.bson.types.ObjectId;
6+
7+
import java.util.List;
8+
import java.util.Optional;
9+
10+
import static dev.morphia.query.filters.Filters.*;
11+
12+
public abstract class MongoRepo<T> implements BaseRepo<T, ObjectId>{
13+
private final Class<T> objectClass;
14+
private final Datastore datastore;
15+
16+
protected MongoRepo(Datastore datastore, Class<T> objectClass) {
17+
this.datastore = datastore;
18+
this.objectClass = objectClass;
19+
}
20+
21+
@Override
22+
public T save(T entity) {
23+
return this.datastore.save(entity);
24+
}
25+
26+
@Override
27+
public Optional<T> findById(ObjectId objectId) {
28+
return Optional.ofNullable(this.datastore.find(objectClass)
29+
.filter(eq("_id", objectId)).first());
30+
}
31+
32+
@Override
33+
public List<T> findAll() {
34+
try (MorphiaCursor<T> cursor = this.datastore.find(objectClass).iterator()) {
35+
return cursor.toList();
36+
}
37+
}
38+
39+
@Override
40+
public void delete(T entity) {
41+
datastore.delete(entity);
42+
}
43+
}

0 commit comments

Comments
 (0)